If we split this up:
$ gcc -c -o testxdr.o -I/usr/include/tirpc -ltirpc testxdr.c
And then compare just linking in the past and now:

focal:
root@f:~# /usr/lib/gcc/x86_64-linux-gnu/9/collect2 -plugin 
/usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so 
-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper 
-plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s 
-plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc 
-plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 
--hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie 
-z now -z relro -o testxdr 
/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o 
/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o 
/usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/9 
-L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu 
-L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib -L/lib/x86_64-linux-gnu 
-L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib 
-L/usr/lib/gcc/x86_64-linux-gnu/9/../../.. -ltirpc testxdr.o -lgcc --push-state 
--as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s 
--pop-state /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o 
/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o


hirsute
root@h:~# /usr/lib/gcc/x86_64-linux-gnu/10/collect2 -plugin 
/usr/lib/gcc/x86_64-linux-gnu/10/liblto_plugin.so 
-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/10/lto-wrapper 
-plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s 
-plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc 
-plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 
--hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie 
-z now -z relro -o testxdr 
/usr/lib/gcc/x86_64-linux-gnu/10/../../../x86_64-linux-gnu/Scrt1.o 
/usr/lib/gcc/x86_64-linux-gnu/10/../../../x86_64-linux-gnu/crti.o 
/usr/lib/gcc/x86_64-linux-gnu/10/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/10 
-L/usr/lib/gcc/x86_64-linux-gnu/10/../../../x86_64-linux-gnu 
-L/usr/lib/gcc/x86_64-linux-gnu/10/../../../../lib -L/lib/x86_64-linux-gnu 
-L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib 
-L/usr/lib/gcc/x86_64-linux-gnu/10/../../.. -ltirpc -lpthread testxdr.o -lgcc 
--push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed 
-lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/10/crtendS.o 
/usr/lib/gcc/x86_64-linux-gnu/10/../../../x86_64-linux-gnu/crtn.o
/usr/bin/ld: testxdr.o: in function `main':
testxdr.c:(.text+0x9): undefined reference to `xdr_void'
collect2: error: ld returned 1 exit status

As expected -ltirpc is there
Also it has the symbol

root@h:~# nm -D /usr/lib/x86_64-linux-gnu/libtirpc.so.3.0.0  | grep xdr_void
0000000000019e60 T xdr_void@@TIRPC_0.3.0


But I'm not sure on the example, xdr_void I usually only see like:
  rpc_call(argv[1], RUSERSPROG, RUSERSVERS, RUSERSPROC_NUM, xdr_void,
I tried other tirpc functions, they fail the same way.

Sorry @drousset, it feels it should be simple but I'm not seeing why
your example fails :-/

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1905360

Title:
  FTBFS in Hirsute due to glibc2.32

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/glusterfs/+bug/1905360/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to