mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-09-06 13:09:58 +00:00
rcutorture: Make use of nolibc when available
This reduces the size of the init executable from ~800 kB to ~800 bytes on x86_64. This is only implemented for x86_64, i386, arm and arm64. Others not tested. Signed-off-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
This commit is contained in:
parent
66b6f755ad
commit
b94ec36896
@ -82,8 +82,10 @@ cd $D
|
|||||||
mkdir -p initrd
|
mkdir -p initrd
|
||||||
cd initrd
|
cd initrd
|
||||||
cat > init.c << '___EOF___'
|
cat > init.c << '___EOF___'
|
||||||
|
#ifndef NOLIBC
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
volatile unsigned long delaycount;
|
volatile unsigned long delaycount;
|
||||||
|
|
||||||
@ -113,7 +115,21 @@ int main(int argc, int argv[])
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
___EOF___
|
___EOF___
|
||||||
${CROSS_COMPILE}gcc -s -static -Os -o init init.c
|
|
||||||
|
# build using nolibc on supported archs (smaller executable) and fall
|
||||||
|
# back to regular glibc on other ones.
|
||||||
|
if echo -e "#if __x86_64__||__i386__||__i486__||__i586__||__i686__" \
|
||||||
|
"||__ARM_EABI__||__aarch64__\nyes\n#endif" \
|
||||||
|
| ${CROSS_COMPILE}gcc -E -nostdlib -xc - \
|
||||||
|
| grep -q '^yes'; then
|
||||||
|
# architecture supported by nolibc
|
||||||
|
${CROSS_COMPILE}gcc -fno-asynchronous-unwind-tables -fno-ident \
|
||||||
|
-nostdlib -include ../bin/nolibc.h -lgcc -s -static -Os \
|
||||||
|
-o init init.c
|
||||||
|
else
|
||||||
|
${CROSS_COMPILE}gcc -s -static -Os -o init init.c
|
||||||
|
fi
|
||||||
|
|
||||||
rm init.c
|
rm init.c
|
||||||
echo "Done creating a statically linked C-language initrd"
|
echo "Done creating a statically linked C-language initrd"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user