$NetBSD: patch-config.mk.in,v 1.5 2019/10/13 21:48:58 he Exp $ Do not use -Bdynamic -G when using GCC on Solaris, it creates non-PIC libraries. Support for shared libraries on OpenBSD and MirBSD. --- config.mk.in.orig 2019-10-13 08:16:50.256467031 +0000 +++ config.mk.in @@ -194,10 +194,15 @@ ifeq ($(patsubst solaris%,solaris,$(HOST # linker, it's even more complicated: we need an rpath option of the # form -Wl,-R . - # Solaris compiler (Sun C 5.5) can't take multiple ld options as - # -Wl,-a,-b . Ld sees -a,-b in that case. - LDFLAGS_SHLIB = -Wl,-Bdynamic -Wl,-G -Wl,-h -Wl,$(SONAME) - CFLAGS_SHLIB = -Kpic + ifeq ($(C_COMPILER_GNU),yes) + LDFLAGS_SHLIB = -shared -Wl,-h -Wl,$(SONAME) + CFLAGS_SHLIB = -fPIC + else + # Solaris compiler (Sun C 5.5) can't take multiple ld options as + # -Wl,-a,-b . Ld sees -a,-b in that case. + LDFLAGS_SHLIB = -Wl,-Bdynamic -Wl,-G -Wl,-h -Wl,$(SONAME) + CFLAGS_SHLIB = -Kpic + endif NEED_RPATH=yes endif @@ -256,6 +261,30 @@ ifeq ($(patsubst netbsd%,netbsd,$(HOST_O NEED_WL_RPATH=yes endif +ifeq ($(patsubst openbsd%,openbsd,$(HOST_OS)),openbsd) + SHARED_LIB_TYPE = unix + SHLIB_SUFFIX = so + MUST_BUILD_SHLIB = Y + MUST_BUILD_SHLIBLE = Y + shlibfn = $(1:%=%.$(SHLIB_SUFFIX).$(MAJ).$(MIN)) + shliblefn = $(1:%=%.$(SHLIB_SUFFIX)) + CFLAGS_SHLIB = -fpic + LDFLAGS_SHLIB = -shared -Wl,-soname,$(SONAME) $(SHLIB_CLIB) + NEED_WL_RPATH=yes +endif + +ifeq ($(patsubst mirbsd%,mirbsd,$(HOST_OS)),mirbsd) + SHARED_LIB_TYPE = unix + SHLIB_SUFFIX = so + MUST_BUILD_SHLIB = Y + MUST_BUILD_SHLIBLE = Y + shlibfn = $(1:%=%.$(SHLIB_SUFFIX).$(MAJ).$(MIN)) + shliblefn = $(1:%=%.$(SHLIB_SUFFIX)) + CFLAGS_SHLIB = -fpic + LDFLAGS_SHLIB = -shared -Wl,-soname,$(SONAME) $(SHLIB_CLIB) + NEED_WL_RPATH=yes +endif + ifeq ($(patsubst freebsd%,freebsd,$(HOST_OS)),freebsd) SHARED_LIB_TYPE = unix SHLIB_SUFFIX = so