On (02/02/2015 17:06), Jeremie Le Hen wrote:
> Hi Gleb,
> On Sun, Feb 1, 2015 at 9:24 PM, Gleb Kurtsou <g...@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

> > libc.so during buildworld (as found under /usr/obj) is symlink to the
> > actual shared library, but not ldscript.  Is it intentional?  I wouldn't
> > expect make -C /usr/src/bin/cat to match buildworld result closely
> > assuming src and world are in sync, but they seem to have different idea
> > of what libc is..
> I don't remember the details except this was pretty twisted :).  I
> don't work enough on this subject to keep it warm in my head and each
> time I need to go back to it, it takes me hours.
> The code is here if you want to give a try:
> http://svnweb.freebsd.org/base/head/share/mk/bsd.lib.mk?view=annotate#l335

freebsd-current@freebsd.org mailing list
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to