DCE 1.12 glibc 2.31 Build Failure - Undefined references during 'rtld' linking

15 views
Skip to first unread message

de.agregacion punto

unread,
Dec 9, 2025, 1:34:13 PM (13 hours ago) Dec 9
to ns-3-users

Hello ns-3 community,

I'm encountering a build failure when trying to build ns-3 DCE 1.12 with glibc 2.31 on Ubuntu 20.04. I'm following the DCE 1.12 release documentation and the work by Parth Pratim Chatterjee (https://ns-3-dce-linux-upgrade.github.io/), but running into linking errors during the glibc build process.

Environment Details:

  • OS: Ubuntu 20.04 on WSL2 (Linux kernel 6.6.87.2-microsoft-standard-WSL2)
  • DCE Version: 1.12
  • ns-3 Version: 3.35 (as recommended for DCE 1.12)
  • glibc Version: 2.31
  • Compiler: GCC 9.4.0
  • Build System: bake
  • Python: 3.10.18

Build Process:
Quick Start — Direct Code Execution

Error Details: The build fails with multiple undefined references during the rtld (runtime dynamic linker) linking stage:

gcc -nostdlib -nostartfiles -shared -o <build-dir>/elf/ld.so.new ... /usr/bin/ld: <build-dir>/elf/librtld.os: in function `dl_main': <source-dir>/glibc/elf/rtld.c:1707: undefined reference to `__access' /usr/bin/ld: <build-dir>/elf/librtld.os: in function `process_envvars': <source-dir>/glibc/elf/rtld.c:2720: undefined reference to `__access' /usr/bin/ld: <source-dir>/glibc/elf/rtld.c:2746: undefined reference to `__GI___open64_nocancel' /usr/bin/ld: <build-dir>/elf/librtld.os: in function `_dl_process_pt_note': <source-dir>/glibc/elf/../sysdeps/x86/dl-prop.h:170: undefined reference to `__GI___pread64_nocancel' /usr/bin/ld: <build-dir>/elf/librtld.os: in function `lose': <source-dir>/glibc/elf/dl-load.c:838: undefined reference to `__GI___close_nocancel' /usr/bin/ld: <build-dir>/elf/librtld.os: in function `_dl_get_file_id': <source-dir>/glibc/elf/../sysdeps/posix/dl-fileid.h:37: undefined reference to `__GI___fxstat64' /usr/bin/ld: <build-dir>/elf/librtld.os: relocation R_X86_64_PC32 against undefined hidden symbol `rtld_errno' can not be used when making a shared object /usr/bin/ld: final link failed: bad value collect2: error: ld returned 1 exit status make: *** [Makefile:539: <build-dir>/elf/ld.so] Error 1

What I've Verified:

  • The patch file available in ns-3-dce/utils/ is glibc-2.31-disable-security-checks.patch, which is already applied
  • Configuration completed successfully (no missing dependencies)
  • The error occurs during the make stage, not configuration
  • I'm using the exact platform (Ubuntu 20.04) that DCE 1.12 was tested on

Questions:

  1. Are there additional patches or build steps required beyond the glibc-2.31-disable-security-checks.patch?
  2. Has anyone successfully built DCE 1.12 with glibc 2.31 on Ubuntu 20.04?
  3. Should I be using the bake tool differently to orchestrate the custom glibc build?
  4. Are there specific configure flags or environment variables needed for the glibc build to work with DCE 1.12?

I understand that DCE 1.12 requires building a custom glibc due to changes in newer Ubuntu releases, but I'm unclear on the complete build process to avoid these undefined reference errors.

Any guidance or pointers to additional documentation would be greatly appreciated!

Thank you



de.agregacion punto

unread,
Dec 9, 2025, 1:36:47 PM (13 hours ago) Dec 9
to ns-3-users
Motivation to look into ns3-DCE is to use iperf application and it's diverse traffic patterns support inside ns3 sim bench.
Reply all
Reply to author
Forward
0 new messages