Hello. I am trying to build an ARM build environment on an Ubuntu 9.10 machine. So far I've compiled binutils and gcc for an arm-linux target, and cross-compiled uClibc and gdb.
Then, I wrote a small hello world application and used the cross-compiler to compile it with and without the -static flag. I copied the statically compiled binary on the ARM device, which has a serial shell console. I ran it and everything went OK. Then I copied the dynamically compiled binary on the device. I also copied libuClibc-0.9.30.1.so as /lib/libc.so.0 (glibc was also there, but as /lib/libc.so.6) and ld-uClibc-0.9.30.1. so as /lib/ld-uClibc.so.0 . The program segfaults even before getting to main. By running gdb on the device, I found out that __uClibc_main () calls _init (). _init () returns, and, immediately afterwards, __uClibc_main () calls _dl_app_init_array (), which in its turn invokes _dl_run_init_array (). The SIGSEGV happens almost immediately in _dl_run_init_array (). By peeking in uClibc's source code, I got the suspect that the variable _dl_loaded_modules stays NULL, instead of being initialized. That variable is declared in ldso/ldso/dl-symbols.c . When is that variable supposed to be initialised? And, overall, how do I get my program to work? Regards, Fabrizio _______________________________________________ uClibc mailing list [email protected] http://lists.busybox.net/mailman/listinfo/uclibc
