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
|
||||
cd initrd
|
||||
cat > init.c << '___EOF___'
|
||||
#ifndef NOLIBC
|
||||
#include <unistd.h>
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
|
||||
volatile unsigned long delaycount;
|
||||
|
||||
|
@ -113,7 +115,21 @@ int main(int argc, int argv[])
|
|||
return 0;
|
||||
}
|
||||
___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
|
||||
echo "Done creating a statically linked C-language initrd"
|
||||
|
||||
|
|
Loading…
Reference in New Issue