[PATCH 2.39] Always define __USE_TIME_BITS64 when 64 bit time_t is used

Reilly Brogan reilly@reillybrogan.com
Thu Jun 6 18:49:41 GMT 2024


We updated the glibc package on Solus to the latest in the 2.39 stable 
branch last week and started seeing build failures in other packages. A 
git bisect revealed that dd535f4f19ef2b5c367a362af445ecadcf45401e 
<https://sourceware.org/git/?p=glibc.git;a=commit;h=dd535f4f19ef2b5c367a362af445ecadcf45401e> 
was the first broken commit.

Error messages look like this (open-vm-tools 12.4.0):
```
libtool: link: x86_64-solus-linux-gcc -shared  -fPIC -DPIC 
.libs/libvmtools_la-i18n.o .libs/libvmtools_la-monotonicTimer.o 
.libs/libvmtools_la-signalSource.o .libs/libvmtools_la-vmtools.o 
.libs/libvmtools_la-vmtoolsConfig.o .libs/libvmtools_la-vmtoolsLog.o 
.libs/libvmtools_la-vmxLogger.o .libs/libvmtools_la-stub-log.o  
-Wl,--whole-archive ../lib/lock/.libs/libLock.a 
../lib/backdoor/.libs/libBackdoor.a 
../lib/asyncsocket/.libs/libAsyncSocket.a 
../lib/sslDirect/.libs/libSslDirect.a ../lib/pollGtk/.libs/libPollGtk.a 
../lib/poll/.libs/libPoll.a ../lib/dataMap/.libs/libDataMap.a 
../lib/hashMap/.libs/libHashMap.a ../lib/dict/.libs/libDict.a 
../lib/dynxdr/.libs/libDynxdr.a ../lib/err/.libs/libErr.a 
../lib/file/.libs/libFile.a ../lib/glibUtils/.libs/libGlibUtils.a 
../lib/guestApp/.libs/libGuestApp.a ../lib/guestRpc/.libs/libGuestRpc.a 
../lib/guestStoreClientHelper/.libs/libGuestStoreClientHelper.a 
../lib/message/.libs/libMessage.a ../lib/netUtil/.libs/libNetUtil.a 
../lib/nicInfo/.libs/libNicInfo.a ../lib/panic/.libs/libPanic.a 
../lib/procMgr/.libs/libProcMgr.a 
../lib/rpcChannel/.libs/libRpcChannel.a ../lib/rpcIn/.libs/libRpcIn.a 
../lib/rpcOut/.libs/libRpcOut.a ../lib/rpcVmx/.libs/libRpcVmx.a 
../lib/string/.libs/libString.a ../lib/jsmn/.libs/libJsmn.a 
../lib/syncDriver/.libs/libSyncDriver.a ../lib/system/.libs/libSystem.a 
../lib/stubs/.libs/libStubsCS.a ../lib/unicode/.libs/libUnicode.a 
../lib/user/.libs/libUser.a ../lib/vmCheck/.libs/libVmCheck.a 
../lib/vmSignal/.libs/libVmSignal.a ../lib/wiper/.libs/libWiper.a 
../lib/misc/.libs/libMisc.a ../lib/slashProc/.libs/libSlashProc.a 
-Wl,--no-whole-archive  -ltirpc -lrt -lcrypt -lpthread -lglib-2.0 -lc  
-mtune=generic -march=x86-64 -g2 -O2 -fstack-protector-strong 
-mno-omit-leaf-frame-pointer -Wl,-z -Wl,defs -Wl,-O1 -Wl,-z -Wl,relro 
-Wl,-z -Wl,max-page-size=0x1000 -Wl,-Bsymbolic-functions 
-Wl,--sort-common -Wl,-z -Wl,pack-relative-relocs   -Wl,-soname 
-Wl,libvmtools.so.0 -o .libs/libvmtools.so.0.0.0
/usr/bin/ld: ../lib/lock/.libs/libLock.a(ulCondVar.o): in function 
`MXUserWaitInternal':
/home/build/YPKG/root/open-vm-tools/build/open-vm-tools-stable-12.4.0/open-vm-tools/lib/lock/ulCondVar.c:304:(.text+0x131): 
undefined reference to `__pthread_cond_timedwait64'
collect2: error: ld returned 1 exit status
```

This is building with GCC 13.3 and binutils 2.42. Building with LLVM 
18.1.6 is successful however. Full log available here: 
https://gist.githubusercontent.com/ReillyBrogan/51d046c0b59eb7feeeab48be3b17c78f/raw/58b8963cfe856f9b811638dbf1e905bcaba80ee7/gistfile1.txt

We've reverted to the prior commit for now, but it would be great if we 
could get this resolved so we can update again.

Regards,

Reilly


More information about the Libc-stable mailing list