The gcc wrapper must be modified so that crt0.o is linked as the first object file. Index: extra/gcc-uClibc/gcc-uClibc.c =================================================================== RCS file: /var/cvs/uClibc/extra/gcc-uClibc/gcc-uClibc.c,v retrieving revision 1.20 diff -u -r1.20 gcc-uClibc.c --- extra/gcc-uClibc/gcc-uClibc.c 2001/05/31 23:07:50 1.20 +++ extra/gcc-uClibc/gcc-uClibc.c 2001/06/21 17:33:31 @@ -200,6 +200,13 @@ i = 0; gcc_argv[i++] = GCC_BIN; + + + // crt0 must be specified as the first object file + if (linking && source_count && use_start){ + gcc_argv[i++] = crt0_path[use_build_dir]; + } + for ( j = 1 ; j < argc ; j++ ) { if (strcmp("--uclibc-use-build-dir",argv[j]) == 0) { use_build_dir = 1; @@ -229,7 +236,7 @@ gcc_argv[i++] = usr_lib_path; } if (use_start) { - gcc_argv[i++] = crt0_path[use_build_dir]; + //xxxxxxxxxxxx gcc_argv[i++] = crt0_path[use_build_dir]; } if (use_stdlib) { gcc_argv[i++] = nostdlib;