[csw-maintainers] Problems with mapfile and linking
jh at opencsw.org
Wed Sep 19 08:31:29 CEST 2012
Am 18.09.12 17:54, schrieb Ben Walton:
> Hi Jan,
> Is autoconf detecting this properly for certain or just by
> happenstance due to other requirements? Is -lrt passed on the command
> line that is trying to build transaction.o? I wonder what the
> configure environment is doing with regard to the new linker maps?
> (It's likely doing the right thing but I haven't looked...)
What autoconf does is first check for it in libc.
This fails do to mapfiles.
Then it checks for it in -lrt which is positive and set to yes.
So the checks here are doing the right thing.
On not sure right now if autoconf does a linking check with -lrt or uses
some other method. Because this should fail too which the same error I
would guess. So something is done different here.
I will have Dago poke at it :)
>> The function fdatasync is defined in 1.22.7 but also since forever in
>> librt. The auto* tool for samba do detect that correctly and add -lrt
>> for linking.
>> The Linker does still fails though with:
>> Undefined first referenced
>> symbol in file
>> fdatasync ../lib/tdb/common/transaction.o
>> (symbol belongs to unavailable version /lib/libc.so (SUNW_1.22.7))
>> First thought was that -ignore might be a problem here so I removed it
>> didn't help.
> I wonder if this is an ordering issue of the -l parameters and the
> implicit -lc ?
It might be. But I would guess -lc is always at first place so I don't
know who you would order that.
>> I can build samba without fdatasync but this might hit us again so I'm
>> looking for a solution. There probably is none and it's a linker bug but
>> I don't know for sure :)
> And presumably that's a useful function for samba to use so disabling
> it doesn't seem like the best option either.
Well it uses irrc fsync instead of fdatasync if it can't find it.
If I looks at the right place of code fdatasync does call fsync in the
end anyway it just takes other args or something.
So I don't see any real difference here.
More information about the maintainers