Fwd: cannot compile with newlib on x86_64

K Jski bielsk1@vt.edu
Fri Jan 9 21:38:00 GMT 2015

To Whom It May concern,

I am trying to use newlib instead of glibc to create static binaries
on my x86_64 system as well as do everything from scratch (by manually
instserting the startfiles as wekk( I just got over the hurdle of
installing it, but now I cant use it. For a simple "Hello World"

currently my command line invocation (from my scipt) is:

gcc -c -o ${INPUT%.c}_x86Obj.o $1

ld -v -nostdlib -nostartfiles -static -o zgcc86 --sysroot=/ \
/mnt/drv2/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crt1.o \
/mnt/drv2/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o \
 /usr/lib/gcc/x86_64-linux-gnu/4.8/crtbeginT.o \
 -L/home/bielsk1/aarch64-toolchain/newLib_x86build \
 -L/home/bielsk1/aarch64-toolchain/X86_newlib/x86_64-linux-gnu/lib \
 -L. \
 -L/mnt/drv2/usr/lib/gcc/x86_64-linux-gnu/4.8 \
 -L/mnt/drv2/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu \
 -L/mnt/drv2/lib/x86_64-linux-gnu -L/mnt/drv2/lib/../lib64
-L/mnt/drv2/usr/lib/x86_64-linux-gnu \
 -L/mnt/drv2/usr/lib/gcc/x86_64-linux-gnu/4.8/../../.. \
 -L/mnt/drv2/home/bielsk1/LLVM/build/Debug+Asserts/bin/../lib -L/mnt/drv2/lib \
 -L/mnt/drv2/lib64 \
 -L/mnt/drv2/usr/lib -L/mnt/drv2/usr/lib/x86_64-linux-gnu/ \
 /usr/lib/x86_64-linux-gnu/libc_nonshared.a \
${INPUT%.c}_x86Obj.o \
 /home/bielsk1/aarch64-toolchain/X86_newlib/x86_64-linux-gnu/lib/libc.a \
 /home/bielsk1/aarch64-toolchain/X86_newlib/x86_64-linux-gnu/lib/libg.a \
 /home/bielsk1/aarch64-toolchain/X86_libgloss/lib/libnosys.a \
 -lgcc  -lgcc_eh \
/mnt/drv2/usr/lib/gcc/x86_64-linux-gnu/4.8/crtend.o \

to which the OS yells:

In function `_start':
(.text+0x25): undefined reference to `__libc_start_main'

I see that newlib does NOT define this symbol while glibc does (in its
libc.a). I have the -nostdlib flag to specify to not use Glibc.

The closest archive I found to my problem was this one which was left

Any help would be appreciated.

K Jelesnianski

More information about the Newlib mailing list