On Sun, May 10, 2015 at 10:20:10PM +0200, Mark Kettenis wrote:
> [ Sending this to tech@ since I don't just want the ports people to
>   know about this ]
> 
> Invoking the linker directly to build executables or shared libraries
> is strongly discouraged.  It really doesn't work properly unless you
> also link in the appropriate /usr/lib/crt*.o files.  We rely on code
> in these files for:
> 
>  * The private stack protector cookie.
> 
>  * For atexit(3) to work in shared libraries that can be dlclose()ed.
> 
>  * For pthread_atfork(3) to work in shared libraries that can be dlclose()ed.
> 
> With binutils 2.15 linking will succeed, but you might see random
> crashes if executable and shared libraries happen to be loaded more
> than 2G apart from eachother.  With binutils 2.17 you'll see the
> R_X86_64_PC32 relocation failure, and linking will fail.
> 
> In general, you should just invoke cc(1) instead of ld(1), since it
> will take care of all the magic.
> 
> Diff below fixes things for devel/luarexlib.
> 
> ok?

OK aja (with a rev bump)


> 
> 
> Index: patches/patch-src_common_mak
> ===================================================================
> RCS file: /cvs/ports/devel/luarexlib/patches/patch-src_common_mak,v
> retrieving revision 1.1
> diff -u -p -r1.1 patch-src_common_mak
> --- patches/patch-src_common_mak      9 Sep 2009 18:02:01 -0000       1.1
> +++ patches/patch-src_common_mak      10 May 2015 20:05:23 -0000
> @@ -1,6 +1,6 @@
>  $OpenBSD: patch-src_common_mak,v 1.1 2009/09/09 18:02:01 jolan Exp $
>  --- src/common.mak.orig      Sat Jun 14 20:11:08 2008
> -+++ src/common.mak   Wed Sep  9 12:13:00 2009
> ++++ src/common.mak   Sun May 10 22:02:08 2015
>  @@ -3,11 +3,11 @@
>   V = 2.4
>   
> @@ -9,8 +9,9 @@ $OpenBSD: patch-src_common_mak,v 1.1 200
>  +CFLAGS+= $(MYCFLAGS) $(DEFS) $(INC)
>   TRG_AR = lib$(TRG).a
>   TRG_SO = $(TRG).so
> - LD     = ld
> +-LD     = ld
>  -LDFLAGS= -shared
> ++LD     = cc
>  +LDFLAGS= -fPIC -shared
>   
>   all: $(TRG_AR) $(TRG_SO)
> 

-- 
Antoine

Reply via email to