Quantcast
Channel: Active questions tagged 22.04 - Ask Ubuntu
Viewing all articles
Browse latest Browse all 4427

How to install glibc 2.31 from source on Ubuntu 22.04

$
0
0

I am trying to compile glibc 2.31 on Ubuntu 22.04 LTS.

I followed a this answer as a template, which was incredibly helpful.

My issue is that there are undefined references when I run make:

...make[2]: Entering directory '/home/user/glibc/glibc-2.31/support'gcc -Wl,-rpath-link=/home/user/glibc/glibc-2.31-build:/home/user/glibc/glibc-2.31-build/math:/home/user/glibc/glibc-2.31-build/elf:/home/user/glibc/glibc-2.31-build/dlfcn:/home/user/glibc/glibc-2.31-build/nss:/home/user/glibc/glibc-2.31-build/nis:/home/user/glibc/glibc-2.31-build/rt:/home/user/glibc/glibc-2.31-build/resolv:/home/user/glibc/glibc-2.31-build/mathvec:/home/user/glibc/glibc-2.31-build/support:/home/user/glibc/glibc-2.31-build/crypt:/home/user/glibc/glibc-2.31-build/nptl -pie -Wl,-O1 -nostdlib -nostartfiles -o /home/user/glibc/glibc-2.31-build/support/test-container    -Wl,-z,combreloc -Wl,-z,relro -Wl,--hash-style=both /home/user/glibc/glibc-2.31-build/csu/Scrt1.o /home/user/glibc/glibc-2.31-build/csu/crti.o `gcc  --print-file-name=crtbeginS.o` /home/user/glibc/glibc-2.31-build/support/test-container.o /home/user/glibc/glibc-2.31-build/support/libsupport_nonshared.a -Wl,-dynamic-linker=/home/user/glibc/glibc-2.31-install/lib/ld-linux-x86-64.so.2  /home/user/glibc/glibc-2.31-build/libc.so.6 /home/user/glibc/glibc-2.31-build/libc_nonshared.a -Wl,--as-needed /home/user/glibc/glibc-2.31-build/elf/ld.so -Wl,--no-as-needed -lgcc  `gcc  --print-file-name=crtendS.o` /home/user/glibc/glibc-2.31-build/csu/crtn.ogcc -Wl,-rpath-link=/home/user/glibc/glibc-2.31-build:/home/user/glibc/glibc-2.31-build/math:/home/user/glibc/glibc-2.31-build/elf:/home/user/glibc/glibc-2.31-build/dlfcn:/home/user/glibc/glibc-2.31-build/nss:/home/user/glibc/glibc-2.31-build/nis:/home/user/glibc/glibc-2.31-build/rt:/home/user/glibc/glibc-2.31-build/resolv:/home/user/glibc/glibc-2.31-build/mathvec:/home/user/glibc/glibc-2.31-build/support:/home/user/glibc/glibc-2.31-build/crypt:/home/user/glibc/glibc-2.31-build/nptl -pie -Wl,-O1 -nostdlib -nostartfiles -o /home/user/glibc/glibc-2.31-build/support/shell-container    -Wl,-z,combreloc -Wl,-z,relro -Wl,--hash-style=both /home/user/glibc/glibc-2.31-build/csu/Scrt1.o /home/user/glibc/glibc-2.31-build/csu/crti.o `gcc  --print-file-name=crtbeginS.o` /home/user/glibc/glibc-2.31-build/support/shell-container.o /home/user/glibc/glibc-2.31-build/support/libsupport_nonshared.a  -Wl,-dynamic-linker=/home/user/glibc/glibc-2.31-install/lib/ld-linux-x86-64.so.2  /home/user/glibc/glibc-2.31-build/libc.so.6 /home/user/glibc/glibc-2.31-build/libc_nonshared.a -Wl,--as-needed /home/user/glibc/glibc-2.31-build/elf/ld.so -Wl,--no-as-needed -lgcc  `gcc  --print-file-name=crtendS.o` /home/user/glibc/glibc-2.31-build/csu/crtn.ogcc -Wl,-rpath-link=/home/user/glibc/glibc-2.31-build:/home/user/glibc/glibc-2.31-build/math:/home/user/glibc/glibc-2.31-build/elf:/home/user/glibc/glibc-2.31-build/dlfcn:/home/user/glibc/glibc-2.31-build/nss:/home/user/glibc/glibc-2.31-build/nis:/home/user/glibc/glibc-2.31-build/rt:/home/user/glibc/glibc-2.31-build/resolv:/home/user/glibc/glibc-2.31-build/mathvec:/home/user/glibc/glibc-2.31-build/support:/home/user/glibc/glibc-2.31-build/crypt:/home/user/glibc/glibc-2.31-build/nptl -pie -Wl,-O1 -nostdlib -nostartfiles -o /home/user/glibc/glibc-2.31-build/support/echo-container    -Wl,-z,combreloc -Wl,-z,relro -Wl,--hash-style=both /home/user/glibc/glibc-2.31-build/csu/Scrt1.o /home/user/glibc/glibc-2.31-build/csu/crti.o `gcc  --print-file-name=crtbeginS.o` /home/user/glibc/glibc-2.31-build/support/echo-container.o /home/user/glibc/glibc-2.31-build/support/libsupport_nonshared.a  -Wl,-dynamic-linker=/home/user/glibc/glibc-2.31-install/lib/ld-linux-x86-64.so.2  /home/user/glibc/glibc-2.31-build/libc.so.6 /home/user/glibc/glibc-2.31-build/libc_nonshared.a -Wl,--as-needed /home/user/glibc/glibc-2.31-build/elf/ld.so -Wl,--no-as-needed -lgcc  `gcc  --print-file-name=crtendS.o` /home/user/glibc/glibc-2.31-build/csu/crtn.ogcc -Wl,-rpath-link=/home/user/glibc/glibc-2.31-build:/home/user/glibc/glibc-2.31-build/math:/home/user/glibc/glibc-2.31-build/elf:/home/user/glibc/glibc-2.31-build/dlfcn:/home/user/glibc/glibc-2.31-build/nss:/home/user/glibc/glibc-2.31-build/nis:/home/user/glibc/glibc-2.31-build/rt:/home/user/glibc/glibc-2.31-build/resolv:/home/user/glibc/glibc-2.31-build/mathvec:/home/user/glibc/glibc-2.31-build/support:/home/user/glibc/glibc-2.31-build/crypt:/home/user/glibc/glibc-2.31-build/nptl -pie -Wl,-O1 -nostdlib -nostartfiles -o /home/user/glibc/glibc-2.31-build/support/true-container    -Wl,-z,combreloc -Wl,-z,relro -Wl,--hash-style=both /home/user/glibc/glibc-2.31-build/csu/Scrt1.o /home/user/glibc/glibc-2.31-build/csu/crti.o `gcc  --print-file-name=crtbeginS.o` /home/user/glibc/glibc-2.31-build/support/true-container.o /home/user/glibc/glibc-2.31-build/support/libsupport_nonshared.a  -Wl,-dynamic-linker=/home/user/glibc/glibc-2.31-install/lib/ld-linux-x86-64.so.2  /home/user/glibc/glibc-2.31-build/libc.so.6 /home/user/glibc/glibc-2.31-build/libc_nonshared.a -Wl,--as-needed /home/user/glibc/glibc-2.31-build/elf/ld.so -Wl,--no-as-needed -lgcc  `gcc  --print-file-name=crtendS.o` /home/user/glibc/glibc-2.31-build/csu/crtn.ogcc -Wl,-rpath-link=/home/user/glibc/glibc-2.31-build:/home/user/glibc/glibc-2.31-build/math:/home/user/glibc/glibc-2.31-build/elf:/home/user/glibc/glibc-2.31-build/dlfcn:/home/user/glibc/glibc-2.31-build/nss:/home/user/glibc/glibc-2.31-build/nis:/home/user/glibc/glibc-2.31-build/rt:/home/user/glibc/glibc-2.31-build/resolv:/home/user/glibc/glibc-2.31-build/mathvec:/home/user/glibc/glibc-2.31-build/support:/home/user/glibc/glibc-2.31-build/crypt:/home/user/glibc/glibc-2.31-build/nptl -pie -Wl,-O1 -nostdlib -nostartfiles -o /home/user/glibc/glibc-2.31-build/support/links-dso-program    -Wl,-z,combreloc -Wl,-z,relro -Wl,--hash-style=both /home/user/glibc/glibc-2.31-build/csu/Scrt1.o /home/user/glibc/glibc-2.31-build/csu/crti.o `gcc  --print-file-name=crtbeginS.o` /home/user/glibc/glibc-2.31-build/support/links-dso-program.o -lstdc++ -lgcc -lgcc_s  -Wl,-dynamic-linker=/home/user/glibc/glibc-2.31-install/lib/ld-linux-x86-64.so.2  /home/user/glibc/glibc-2.31-build/libc.so.6 /home/user/glibc/glibc-2.31-build/libc_nonshared.a -Wl,--as-needed /home/user/glibc/glibc-2.31-build/elf/ld.so -Wl,--no-as-needed -lgcc  `gcc  --print-file-name=crtendS.o` /home/user/glibc/glibc-2.31-build/csu/crtn.o/home/user/binutils/binutils-2.32-install/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/8/libstdc++.so: undefined reference to `fstat64@GLIBC_2.33'/home/user/binutils/binutils-2.32-install/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/8/libstdc++.so: undefined reference to `pthread_key_create@GLIBC_2.34'/home/user/binutils/binutils-2.32-install/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/8/libstdc++.so: undefined reference to `pthread_rwlock_unlock@GLIBC_2.34'/home/user/binutils/binutils-2.32-install/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/8/libstdc++.so: undefined reference to `pthread_detach@GLIBC_2.34'/home/user/binutils/binutils-2.32-install/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/8/libstdc++.so: undefined reference to `pthread_setspecific@GLIBC_2.34'/home/user/binutils/binutils-2.32-install/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/libgcc_s.so.1: undefined reference to `_dl_find_object@GLIBC_2.35'/home/user/binutils/binutils-2.32-install/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/8/libstdc++.so: undefined reference to `__libc_single_threaded@GLIBC_2.32'/home/user/binutils/binutils-2.32-install/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/8/libstdc++.so: undefined reference to `pthread_join@GLIBC_2.34'/home/user/binutils/binutils-2.32-install/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/8/libstdc++.so: undefined reference to `pthread_rwlock_wrlock@GLIBC_2.34'/home/user/binutils/binutils-2.32-install/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/8/libstdc++.so: undefined reference to `pthread_getspecific@GLIBC_2.34'/home/user/binutils/binutils-2.32-install/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/8/libstdc++.so: undefined reference to `pthread_key_delete@GLIBC_2.34'/home/user/binutils/binutils-2.32-install/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/8/libstdc++.so: undefined reference to `lstat@GLIBC_2.33'/home/user/binutils/binutils-2.32-install/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/8/libstdc++.so: undefined reference to `stat@GLIBC_2.33'/home/user/binutils/binutils-2.32-install/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/8/libstdc++.so: undefined reference to `pthread_once@GLIBC_2.34'/home/user/binutils/binutils-2.32-install/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/8/libstdc++.so: undefined reference to `pthread_rwlock_rdlock@GLIBC_2.34'/home/user/binutils/binutils-2.32-install/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/8/libstdc++.so: undefined reference to `pthread_create@GLIBC_2.34'collect2: error: ld returned 1 exit statusmake[2]: *** [../Rules:215: /home/user/glibc/glibc-2.31-build/support/links-dso-program] Error 1make[2]: Leaving directory '/home/user/glibc/glibc-2.31/support'make[1]: *** [Makefile:470: support/others] Error 2make[1]: Leaving directory '/home/user/glibc/glibc-2.31'make: *** [Makefile:9: all] Error 2

Originally, I tried with:

gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0GNU ld (GNU Binutils for Ubuntu) 2.38

But, after failure I tried (and failed the same way) with:

gcc (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0GNU ld (GNU Binutils for Ubuntu) 2.38

This procedure fails with glibc 2.31 and 2.32, but works for glibc 2.35.

Lastly, I actually read the INSTALL document, and I see that:

* GCC 6.2 or newer     GCC 6.2 or higher is required.  In general it is recommended to use     the newest version of the compiler that is known to work for     building the GNU C Library, as newer compilers usually produce     better code.  As of release time, GCC 9.2.1 is the newest compiler     verified to work to build the GNU C Library.     For multi-arch support it is recommended to use a GCC which has     been built with support for GNU indirect functions.  This ensures     that correct debugging information is generated for functions     selected by IFUNC resolvers.  This support can either be enabled by     configuring GCC with '--enable-gnu-indirect-function', or by     enabling it by default by setting 'default_gnu_indirect_function'     variable for a particular architecture in the GCC source file'gcc/config.gcc'.     You can use whatever compiler you like to compile programs that use     the GNU C Library.     Check the FAQ for any special compiler issues on particular     platforms.* GNU 'binutils' 2.25 or later     You must use GNU 'binutils' (as and ld) to build the GNU C Library.     No other assembler or linker has the necessary functionality at the     moment.  As of release time, GNU 'binutils' 2.32 is the newest     verified to work to build the GNU C Library.

So, I built binutils 2.32 following the excellent advice of the accepted answer to this question.

Then, I put that version of binutils at the top of my PATH variable, yielding the following results:

gcc --versiongcc (Ubuntu 8.4.0-3ubuntu2) 8.4.0ld --versionGNU ld (GNU Binutils) 2.32as --versionGNU assembler (GNU Binutils) 2.32

And still, I get the same errors for undefined references... I am lost.

Any help would be appreciated. Thanks in advance.


Viewing all articles
Browse latest Browse all 4427

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>