Small problem building cygserver from source

Jon Turney
Sun Jun 27 11:38:22 GMT 2021

On 27/06/2021 09:01, Mark Geisert wrote:
> Jon Turney wrote:
>> On 24/06/2021 08:10, Mark Geisert wrote:
>>> Hi folks,
>>> I'm seeing this build problem while building the whole Cygwin ball of 
>>> wax for local testing...
>>> Making all in cygserver
>>> make[3]: Entering directory 
>>> '/c/staging/newlib-cygwin/build/x86_64-pc-cygwin/winsup/cygserver'
>>>    CXXLD    cygserver.exe
>>> /usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/bin/ld: 
>>> /usr/lib/w32api/libadvapi32.a(daltbs00499.o):(.idata$5+0x0): multiple 
>>> definition of `__imp_LsaStorePrivateData'; 
>>> /oss/build/x86_64-pc-cygwin/winsup/cygwin/libcygwin.a(d000097.o):(.idata$5+0x0): 
>>> first defined here
>>> /usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/bin/ld: 
>>> /usr/lib/w32api/libadvapi32.a(daltbs00471.o):(.idata$5+0x0): multiple 
>>> definition of `__imp_LsaOpenPolicy'; 
>>> /oss/build/x86_64-pc-cygwin/winsup/cygwin/libcygwin.a(d000093.o):(.idata$5+0x0): 
>>> first defined here
>>> /usr/lib/gcc/x86_64-pc-cygwin/10/../../../../x86_64-pc-cygwin/bin/ld: 
>>> /usr/lib/w32api/libadvapi32.a(daltbs00437.o):(.idata$5+0x0): multiple 
>>> definition of `__imp_LsaClose'; 
>>> /oss/build/x86_64-pc-cygwin/winsup/cygwin/libcygwin.a(d000084.o):(.idata$5+0x0): 
>>> first defined here
>>> collect2: error: ld returned 1 exit status
>>> make[3]: *** [Makefile:534: cygserver.exe] Error 1
>>> I was not able to determine why libadvapi32.a is apparently being 
>>> pulled in here or what was doing that.
>> Not reproducible in CI or locally.
>> You might need to do a clean and/or use a fresh build directory if you 
>> haven't rebuilt successfully since the automakification changes.
> I did a 'git pull' then configure + make just to be sure I'm up to 
> date.  Errors still occur.  Hmm.  I suppose it's some local issue then.
> I read the error msgs as double defs of imports in w32api/libadvapi32.a 
> vs libcygwin.a.  I don't understand why the linker cares.  Is it that 
> there are no defs of the corresponding Lsa* functions among the linker

No, remember that import stubs are statically linked.

I'm pretty sure there shouldn't be a definition of _imp_Lsa* in 
libcygwin.a at all, since the only import stubs it should be providing 
are for the cygwin.dll.

More information about the Cygwin-developers mailing list