When building glibc 2.36 I started to see "undefined reference to `strcpy'". This was working for 2.36. I have found similar issue #29454 that have fixed one problem of strcpy. Second one is still there. I have tried very latest 2.36 commit in release branch with same result (I have seen patch was backborted there to fix one of strcpy issues). I even replaced strcpy wiht stpccy in sprof.c (only place with strcpy withing elf directory), but did not help. Anyone any idea what can be done? mv -f /home/abuild/aports/main/glibc/src/glibc-2.36/build/elf/rtld-libc.aT /home/abuild/aports/main/glibc/src/glibc-2.36/build/elf/rtld-libc.a make[3]: Leaving directory '/home/abuild/aports/main/glibc/src/glibc-2.36/elf' gcc -Wl,--as-needed,-O1,--sort-common -nostdlib -nostartfiles -r -o /home/abuild/aports/main/glibc/src/glibc-2.36/build/elf/librtld.os '-Wl,-(' /home/abuild/aports/main/glibc/src/glibc-2.36/build/elf/dl-allobjs.os /home/abuild/aports/main/glibc/src/glibc-2.36/build/elf/rtld-libc.a -lgcc '-Wl,-)' \ -Wl,-Map,/home/abuild/aports/main/glibc/src/glibc-2.36/build/elf/librtld.os.map gcc -Wl,--as-needed,-O1,--sort-common -nostdlib -nostartfiles -shared -o /home/abuild/aports/main/glibc/src/glibc-2.36/build/elf/ld.so.new \ -Wl,-z,relro -Wl,-z,defs -Wl,-z,now \ -Wl,-z,pack-relative-relocs \ /home/abuild/aports/main/glibc/src/glibc-2.36/build/elf/librtld.os -Wl,--version-script=/home/abuild/aports/main/glibc/src/glibc-2.36/build/ld.map \ -Wl,-soname=ld-linux-x86-64.so.2 /usr/lib/gcc/x86_64-alpine-linux-gnu/11.2.1/../../../../x86_64-alpine-linux-gnu/bin/ld: /home/abuild/aports/main/glibc/src/glibc-2.36/build/elf/librtld.os: in function `_dl_start_profile': (.text+0x9444): undefined reference to `strcpy' collect2: error: ld returned 1 exit status make[2]: *** [Makefile:1346: /home/abuild/aports/main/glibc/src/glibc-2.36/build/elf/ld.so] Error 1 make[2]: Leaving directory '/home/abuild/aports/main/glibc/src/glibc-2.36/elf' make[1]: *** [Makefile:484: elf/subdir_lib] Error 2 make[1]: Leaving directory '/home/abuild/aports/main/glibc/src/glibc-2.36'
Sorry I meant to say "This was working for 2.35 ...." GCC used is 11.2.1_git20220219
(In reply to Tomas Kolda from comment #0) > When building glibc 2.36 I started to see "undefined reference to `strcpy'". How are you building this glibc? It looks like you might be using -Os or other instead of -O2, which is required to build all of glibc and avoid external library calls in certain parts of the loader (where we can't have relocations or external library calls).
"-Os or other instead of -O2" - You are absolutely right. I am using Alpine abuild that has default "-Os". I am not sure why it worked for 2.35. Anyway, thank you so much for the hint. It resolved the problem.
Not a bug. I have set CFLAGS, CPPFLAGS, CXXFLAGX to use -O2 instead of -Os.
(In reply to Tomas Kolda from comment #4) > Not a bug. I have set CFLAGS, CPPFLAGS, CXXFLAGX to use -O2 instead of -Os. Ideally, we should support -Os as well. I think we should add a patch similar to the one to avoid libcalls [1] also to fix the possible strcpy call. [1] https://patchwork.sourceware.org/project/glibc/patch/20220811121909.4110665-1-adhemerval.zanella@linaro.org/
(In reply to Adhemerval Zanella from comment #5) > (In reply to Tomas Kolda from comment #4) > > Not a bug. I have set CFLAGS, CPPFLAGS, CXXFLAGX to use -O2 instead of -Os. > > Ideally, we should support -Os as well. I think we should add a patch > similar to the one to avoid libcalls [1] also to fix the possible strcpy > call. > > [1] > https://patchwork.sourceware.org/project/glibc/patch/20220811121909.4110665- > 1-adhemerval.zanella@linaro.org/ I agree. If we get this clean I'll talk to DJ about cloning the CI builder and test with -Os for pre-commit CI.
Hello, (In reply to Adhemerval Zanella from comment #5) > (In reply to Tomas Kolda from comment #4) > > Not a bug. I have set CFLAGS, CPPFLAGS, CXXFLAGX to use -O2 instead of -Os. > > Ideally, we should support -Os as well. I think we should add a patch > similar to the one to avoid libcalls [1] also to fix the possible strcpy > call. > > [1] > https://patchwork.sourceware.org/project/glibc/patch/20220811121909.4110665- > 1-adhemerval.zanella@linaro.org/ We noticed this issue in the Buildroot gitlab-ci using glibc 2.36-44-g2628500f5dff1dd99c49a09b418b3b1ea3a6b5d3 [1]. Backporting the patch [2] allows to fix the issue. [1] https://gitlab.com/buildroot.org/buildroot/-/jobs/3134229956 [2] https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=9dc4e29f630c6ef8299120b275e503321dc0c8c7 Best regards, Romain
*** Bug 29938 has been marked as a duplicate of this bug. ***