libc.so dependency on libssp_nonshared.a

Garrett Cooper yaneurabeya at gmail.com
Wed Feb 4 06:21:18 UTC 2015


On Feb 2, 2015, at 23:47, Gleb Kurtsou <gleb at freebsd.org> wrote:

> On (02/02/2015 17:06), Jeremie Le Hen wrote:
>> Hi Gleb,
>> On Sun, Feb 1, 2015 at 9:24 PM, Gleb Kurtsou <gleb at freebsd.org> wrote:
>>> I came across some build issues in libc.so and SSP.
>>> 
>>> libc.ldscript (aka libc.so) unconditionally includes @@LIBDIR@@/libssp_nonshared.a
>>> 
>>> libssp* are not built if WITHOUT_SSP defined.
>>> 
>>> ObsoleteFiles.inc doesn't mention libssp*.
>>> 
>>> Consider WITHOUT_SSP=yes case.  As soon as one does clean installworld
>>> and/or removes stale libssp_nonshared.a ld fails to link anything
>>> because of missing libssp_nonshared.a
>> 
>> I think nowadays it would make sense to get it of WITHOUT_SSP
>> altogether.  This will turn this into a non-issue.
> 
> Do you mean building libssp_nonshared unconditionally? It makes perfect
> sense. The library is a single stub function.
> 
> By building libssp* conditionally we may expect that -fstack-protector
> complier option won't work. I wasn't able to reproduce this potential
> problem. libc provides __stack_chk_fail and __stack_chk_guard. And I
> failed to create a test case that would generate code using anything
> like __memcpy_chk.
> 
> Perhaps we should change MK_SSP to operate as documented (add
> -fstack-protector to CFLAGS) and consider adding MK_SSP_SUPPORT option
> for libraries.  Although there is no reason to have MK_SSP_SUPPORT if
> that would imply failure to run binaries or compile with
> -fstack-protector.

Silly question: shouldn’t libc.ldscript be built, conditionally with libssp_nonshared.a? Doing that would be trivial… Are there any concerns with doing this?

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 496 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.freebsd.org/pipermail/freebsd-current/attachments/20150203/4d2241a2/attachment.sig>


More information about the freebsd-current mailing list