From patchwork Fri Dec 30 09:59:49 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Iain Sandoe X-Patchwork-Id: 62486 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 07C883858C66 for ; Fri, 30 Dec 2022 10:00:22 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 07C883858C66 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1672394422; bh=LyOw6HmeNkyxbKNCH92vkqGUQkmJ1h060d9BgmK4Feo=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc:From; b=bfifjxPy6v6W8FFy9aHq0NjyH0deTHzYpfZ8Ikyc3F4XCvOQ30wPXNyqKbIQNAu2p /78QGXX0D4fiAF6ghBs5ate4BQf6pJA4E0yg+3wP4rc5dPhvh4OspK+RYluwcG0xZ/ 3Y6obLNqV5f2dCv/kHDIVltWPNG3JjvodMc21Otc= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-wr1-x432.google.com (mail-wr1-x432.google.com [IPv6:2a00:1450:4864:20::432]) by sourceware.org (Postfix) with ESMTPS id BED8C3858D1E for ; Fri, 30 Dec 2022 09:59:51 +0000 (GMT) Received: by mail-wr1-x432.google.com with SMTP id w1so7354537wrt.8 for ; Fri, 30 Dec 2022 01:59:51 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:reply-to:message-id:date :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=LyOw6HmeNkyxbKNCH92vkqGUQkmJ1h060d9BgmK4Feo=; b=L+W6MulWFccYOmDjdAfCY9uXdXO0j+GPRkcyCI+UlKYIYNSR/zpidY4eecosATTfpq ToSLr60TfKPxJYmdRSlJnL4ZO9dCysD9uf3DNqo3iOr/GHXgDfA6+HFP7Uuxn3VUkrER hJfOVyKwsSK5KmTKNntMoCFIKr7kRJMBVMCFAXLVe+Ms6AxDtSI6GK8jcdLHzGEKFPRh M0pZNUzh1XJ7SCGfitJQwSyd+zADXiJepvgXK9Thu+zLsCmHupLXZyJM9Id1Lh90p2wB zgqR78BRs42hbR7YspsgarUwYq7eT1QTIM7Qzu9Alf4OCDedUTltnLWyUjP7lReT0b1J dOxw== X-Gm-Message-State: AFqh2kouuxXV3pWHcyTZrqGNV3XooPz+e1+cwWdCDTSgWYqb8pFuhSVe JZwoXVjCbJMZFysON3vTo53LJ4D2BgU= X-Google-Smtp-Source: AMrXdXtFXVdd6dC5zOqZoxrcYmlziIc5c6FhASg2oc/lMabJqzBh9NNIfrEXs7O+fo87PLtW1JcYkg== X-Received: by 2002:a5d:624f:0:b0:24d:12ce:2dca with SMTP id m15-20020a5d624f000000b0024d12ce2dcamr20281180wrv.53.1672394390326; Fri, 30 Dec 2022 01:59:50 -0800 (PST) Received: from localhost.localdomain (host81-138-1-83.in-addr.btopenworld.com. [81.138.1.83]) by smtp.gmail.com with ESMTPSA id l15-20020a5d410f000000b002683695bf97sm20277354wrp.58.2022.12.30.01.59.49 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 30 Dec 2022 01:59:49 -0800 (PST) X-Google-Original-From: Iain Sandoe To: gcc-patches@gcc.gnu.org Subject: [PATCH 2/n] modula-2, libgm2: Add undefined, dynamic_lookup to m2 libs links. Date: Fri, 30 Dec 2022 09:59:49 +0000 Message-Id: <20221230095949.45279-1-iain@sandoe.co.uk> X-Mailer: git-send-email 2.37.1 (Apple Git-137.1) MIME-Version: 1.0 X-Spam-Status: No, score=-8.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Iain Sandoe via Gcc-patches From: Iain Sandoe Reply-To: iain@sandoe.co.uk Cc: Iain Sandoe , gaiusmod2@gmail.com, ro@CeBiTec.Uni-Bielefeld.DE Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" There are several modula-2 issues on Darwin, some blocking bootstrap on one or more system versions. This has been tested on powerpc/i688-darwin9 .. x86_64-darwin10,17,21 and the prototype aarch64-darwin branch on darwin21. OK for trunk? thanks Iain P.S. I am slightly surprised that a target library configure set needs to consider $host. If a target library is manually disabled (or does not work) on a specific host - we usually disable it at the next level up (see, for example, the libatomic, sanitizers etc. where there is a 'configure.tgt' that adapts the library flags etc. to specific targets - or says that it is UNSUPPORTED). --- 8< --- The libm2 libraries are cross-linked, which means that we need to allow symbols to be undefined at link time and then to be found at runtime. This is implemented on Darwin by adding -undefined, dynamic_lookup to the link command. NOTE: It would probably be a better solution to rework the libraries either to combine those that have inter-dependencies, or to reorder the layering so the there is a fixed dependency tree. Signed-off-by: Iain Sandoe libgm2/ChangeLog: * configure: Regenerate. * configure.ac: Make a conditional for configurations targeting Darwin. * libm2cor/Makefile.am: Use -undefined,dynamic_lookup on Darwin. * libm2iso/Makefile.am: Likewise. * libm2log/Makefile.am: Likewise. * libm2pim/Makefile.am: Likewise * libm2min/Makefile.am: Likewise * libm2cor/Makefile.in: Regenerate. * libm2iso/Makefile.in: Regenerate. * libm2log/Makefile.in: Regenerate. * libm2min/Makefile.in: Regenerate. * libm2pim/Makefile.in: Regenerate. --- libgm2/configure | 33 ++++++++++++++++++++++++++++++--- libgm2/configure.ac | 16 +++++++++++++++- libgm2/libm2cor/Makefile.am | 7 ++++++- libgm2/libm2cor/Makefile.in | 4 +++- libgm2/libm2iso/Makefile.am | 7 ++++++- libgm2/libm2iso/Makefile.in | 4 +++- libgm2/libm2log/Makefile.am | 7 ++++++- libgm2/libm2log/Makefile.in | 4 +++- libgm2/libm2min/Makefile.am | 7 ++++++- libgm2/libm2min/Makefile.in | 4 +++- libgm2/libm2pim/Makefile.am | 8 ++++++-- libgm2/libm2pim/Makefile.in | 4 +++- 12 files changed, 90 insertions(+), 15 deletions(-) diff --git a/libgm2/configure b/libgm2/configure index 889c0926a15..8404b0e6e6d 100755 --- a/libgm2/configure +++ b/libgm2/configure @@ -634,6 +634,8 @@ ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS +TARGET_DARWIN_FALSE +TARGET_DARWIN_TRUE BUILD_LOGLIB_FALSE BUILD_LOGLIB_TRUE BUILD_CORLIB_FALSE @@ -12698,7 +12700,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12701 "configure" +#line 12703 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12804,7 +12806,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12807 "configure" +#line 12809 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -19508,7 +19510,7 @@ $as_echo "$as_me: libgm2 has finished checking target libc and libm contents." > # All known M2_HOST_OS values. This is the union of all host operating systems # supported by gm2. -M2_SUPPORTED_HOST_OS="aix freebsd hurd linux netbsd openbsd solaris windows" +M2_SUPPORTED_HOST_OS="aix freebsd hurd linux netbsd openbsd solaris windows darwin" M2_HOST_OS=unknown @@ -19523,6 +19525,19 @@ case ${host} in *-*-gnu*) M2_HOST_OS=hurd ;; esac +M2_TARGET_OS=unknown + +case ${target} in + *-*-darwin*) M2_TARGET_OS=darwin ;; + *-*-freebsd*) M2_TARGET_OS=freebsd ;; + *-*-linux*) M2_TARGET_OS=linux ;; + *-*-netbsd*) M2_TARGET_OS=netbsd ;; + *-*-openbsd*) M2_TARGET_OS=openbsd ;; + *-*-solaris2*) M2_TARGET_OS=solaris ;; + *-*-aix*) M2_TARGET_OS=aix ;; + *-*-gnu*) M2_TARGET_OS=hurd ;; +esac + # M2_HOST_OS=unknown if test x${M2_HOST_OS} = xunknown; then { $as_echo "$as_me:${as_lineno-$LINENO}: unsupported host, will build a minimal m2 library" >&5 @@ -19672,6 +19687,14 @@ else BUILD_LOGLIB_FALSE= fi + if test x$M2_TARGET_OS = xdarwin; then + TARGET_DARWIN_TRUE= + TARGET_DARWIN_FALSE='#' +else + TARGET_DARWIN_TRUE='#' + TARGET_DARWIN_FALSE= +fi + ac_config_files="$ac_config_files Makefile libm2min/Makefile libm2pim/Makefile libm2iso/Makefile libm2cor/Makefile libm2log/Makefile" @@ -19841,6 +19864,10 @@ if test -z "${BUILD_LOGLIB_TRUE}" && test -z "${BUILD_LOGLIB_FALSE}"; then as_fn_error $? "conditional \"BUILD_LOGLIB\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${TARGET_DARWIN_TRUE}" && test -z "${TARGET_DARWIN_FALSE}"; then + as_fn_error $? "conditional \"TARGET_DARWIN\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 diff --git a/libgm2/configure.ac b/libgm2/configure.ac index 8f069adb29e..0465b7c1caf 100644 --- a/libgm2/configure.ac +++ b/libgm2/configure.ac @@ -267,7 +267,7 @@ AC_MSG_NOTICE([libgm2 has finished checking target libc and libm contents.]) # All known M2_HOST_OS values. This is the union of all host operating systems # supported by gm2. -M2_SUPPORTED_HOST_OS="aix freebsd hurd linux netbsd openbsd solaris windows" +M2_SUPPORTED_HOST_OS="aix freebsd hurd linux netbsd openbsd solaris windows darwin" M2_HOST_OS=unknown @@ -282,6 +282,19 @@ case ${host} in *-*-gnu*) M2_HOST_OS=hurd ;; esac +M2_TARGET_OS=unknown + +case ${target} in + *-*-darwin*) M2_TARGET_OS=darwin ;; + *-*-freebsd*) M2_TARGET_OS=freebsd ;; + *-*-linux*) M2_TARGET_OS=linux ;; + *-*-netbsd*) M2_TARGET_OS=netbsd ;; + *-*-openbsd*) M2_TARGET_OS=openbsd ;; + *-*-solaris2*) M2_TARGET_OS=solaris ;; + *-*-aix*) M2_TARGET_OS=aix ;; + *-*-gnu*) M2_TARGET_OS=hurd ;; +esac + # M2_HOST_OS=unknown if test x${M2_HOST_OS} = xunknown; then AC_MSG_NOTICE([unsupported host, will build a minimal m2 library]) @@ -366,6 +379,7 @@ AM_CONDITIONAL([BUILD_PIMLIB], [test x$BUILD_PIMLIB = xtrue]) AM_CONDITIONAL([BUILD_ISOLIB], [test x$BUILD_ISOLIB = xtrue]) AM_CONDITIONAL([BUILD_CORLIB], [test x$BUILD_CORLIB = xtrue]) AM_CONDITIONAL([BUILD_LOGLIB], [test x$BUILD_LOGLIB = xtrue]) +AM_CONDITIONAL([TARGET_DARWIN], [test x$M2_TARGET_OS = xdarwin]) AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_FILES([Makefile libm2min/Makefile libm2pim/Makefile libm2iso/Makefile diff --git a/libgm2/libm2cor/Makefile.am b/libgm2/libm2cor/Makefile.am index 781955bffc8..076ac08cc30 100644 --- a/libgm2/libm2cor/Makefile.am +++ b/libgm2/libm2cor/Makefile.am @@ -114,7 +114,12 @@ libm2cordir = libm2cor libm2cor_la_DEPENDENCIES = SYSTEM.def $(addsuffix .lo, $(basename $(libm2cor_la_SOURCES))) libm2cor_la_CFLAGS = -I. -I.. -I$(GM2_SRC)/gm2-libs -I$(GM2_SRC)/gm2-libs-iso -DBUILD_GM2_LIBS -I@srcdir@/../ -I@srcdir@/../libm2iso libm2cor_la_M2FLAGS = -I. -I$(GM2_SRC)/gm2-libs-coroutines -I$(GM2_SRC)/gm2-libs -I$(GM2_SRC)/gm2-libs-iso -fm2-g -g -libm2cor_la_LINK = $(LINK) -version-info $(libtool_VERSION) +if TARGET_DARWIN +libm2cor_la_link_flags = -Wl,-undefined,dynamic_lookup +else +libm2cor_la_link_flags = +endif +libm2cor_la_LINK = $(LINK) -version-info $(libtool_VERSION) $(libm2cor_la_link_flags) BUILT_SOURCES = SYSTEM.def CLEANFILES = SYSTEM.def diff --git a/libgm2/libm2cor/Makefile.in b/libgm2/libm2cor/Makefile.in index 6d921cd329d..cef367e008f 100644 --- a/libgm2/libm2cor/Makefile.in +++ b/libgm2/libm2cor/Makefile.in @@ -463,7 +463,9 @@ FLAGS_TO_PASS = $(AM_MAKEFLAGS) @BUILD_CORLIB_TRUE@libm2cor_la_DEPENDENCIES = SYSTEM.def $(addsuffix .lo, $(basename $(libm2cor_la_SOURCES))) @BUILD_CORLIB_TRUE@libm2cor_la_CFLAGS = -I. -I.. -I$(GM2_SRC)/gm2-libs -I$(GM2_SRC)/gm2-libs-iso -DBUILD_GM2_LIBS -I@srcdir@/../ -I@srcdir@/../libm2iso @BUILD_CORLIB_TRUE@libm2cor_la_M2FLAGS = -I. -I$(GM2_SRC)/gm2-libs-coroutines -I$(GM2_SRC)/gm2-libs -I$(GM2_SRC)/gm2-libs-iso -fm2-g -g -@BUILD_CORLIB_TRUE@libm2cor_la_LINK = $(LINK) -version-info $(libtool_VERSION) +@BUILD_CORLIB_TRUE@@TARGET_DARWIN_FALSE@libm2cor_la_link_flags = +@BUILD_CORLIB_TRUE@@TARGET_DARWIN_TRUE@libm2cor_la_link_flags = -Wl,-undefined,dynamic_lookup +@BUILD_CORLIB_TRUE@libm2cor_la_LINK = $(LINK) -version-info $(libtool_VERSION) $(libm2cor_la_link_flags) @BUILD_CORLIB_TRUE@BUILT_SOURCES = SYSTEM.def @BUILD_CORLIB_TRUE@CLEANFILES = SYSTEM.def @BUILD_CORLIB_TRUE@M2LIBDIR = /m2/m2cor/ diff --git a/libgm2/libm2iso/Makefile.am b/libgm2/libm2iso/Makefile.am index dc547207e79..fc0e4f5bd1a 100644 --- a/libgm2/libm2iso/Makefile.am +++ b/libgm2/libm2iso/Makefile.am @@ -187,7 +187,12 @@ libm2isodir = libm2iso libm2iso_la_DEPENDENCIES = SYSTEM.def $(addsuffix .lo, $(basename $(libm2iso_la_SOURCES))) libm2iso_la_CFLAGS = $(C_INCLUDES) -I. -I.. -I$(GM2_SRC)/gm2-libs-iso -I$(GM2_SRC)/gm2-libs -DBUILD_GM2_LIBS -I@srcdir@/../ -I../../../gcc -I$(GCC_DIR) -I$(GCC_DIR)/../include -I../../libgcc -I$(GCC_DIR)/../libgcc -I$(MULTIBUILDTOP)../../gcc/include libm2iso_la_M2FLAGS = -I. -Ilibm2iso -I$(GM2_SRC)/gm2-libs-iso -I$(GM2_SRC)/gm2-libs -fiso -fextended-opaque -fm2-g -g -libm2iso_la_LINK = $(LINK) -version-info $(libtool_VERSION) +if TARGET_DARWIN +libm2iso_la_link_flags = -Wl,-undefined,dynamic_lookup +else +libm2iso_la_link_flags = +endif +libm2iso_la_LINK = $(LINK) -version-info $(libtool_VERSION) $(libm2iso_la_link_flags) CLEANFILES = SYSTEM.def BUILT_SOURCES = SYSTEM.def diff --git a/libgm2/libm2iso/Makefile.in b/libgm2/libm2iso/Makefile.in index 04aba0f032b..e628dd33631 100644 --- a/libgm2/libm2iso/Makefile.in +++ b/libgm2/libm2iso/Makefile.in @@ -563,7 +563,9 @@ FLAGS_TO_PASS = $(AM_MAKEFLAGS) @BUILD_ISOLIB_TRUE@libm2iso_la_DEPENDENCIES = SYSTEM.def $(addsuffix .lo, $(basename $(libm2iso_la_SOURCES))) @BUILD_ISOLIB_TRUE@libm2iso_la_CFLAGS = $(C_INCLUDES) -I. -I.. -I$(GM2_SRC)/gm2-libs-iso -I$(GM2_SRC)/gm2-libs -DBUILD_GM2_LIBS -I@srcdir@/../ -I../../../gcc -I$(GCC_DIR) -I$(GCC_DIR)/../include -I../../libgcc -I$(GCC_DIR)/../libgcc -I$(MULTIBUILDTOP)../../gcc/include @BUILD_ISOLIB_TRUE@libm2iso_la_M2FLAGS = -I. -Ilibm2iso -I$(GM2_SRC)/gm2-libs-iso -I$(GM2_SRC)/gm2-libs -fiso -fextended-opaque -fm2-g -g -@BUILD_ISOLIB_TRUE@libm2iso_la_LINK = $(LINK) -version-info $(libtool_VERSION) +@BUILD_ISOLIB_TRUE@@TARGET_DARWIN_FALSE@libm2iso_la_link_flags = +@BUILD_ISOLIB_TRUE@@TARGET_DARWIN_TRUE@libm2iso_la_link_flags = -Wl,-undefined,dynamic_lookup +@BUILD_ISOLIB_TRUE@libm2iso_la_LINK = $(LINK) -version-info $(libtool_VERSION) $(libm2iso_la_link_flags) @BUILD_ISOLIB_TRUE@CLEANFILES = SYSTEM.def @BUILD_ISOLIB_TRUE@BUILT_SOURCES = SYSTEM.def @BUILD_ISOLIB_TRUE@M2LIBDIR = /m2/m2iso/ diff --git a/libgm2/libm2log/Makefile.am b/libgm2/libm2log/Makefile.am index 728a179a5fd..f8261b9dc5a 100644 --- a/libgm2/libm2log/Makefile.am +++ b/libgm2/libm2log/Makefile.am @@ -132,7 +132,12 @@ libm2log_la_SOURCES = $(M2MODS) Break.c libm2log_la_DEPENDENCIES = ../libm2pim/SYSTEM.def $(addsuffix .lo, $(basename $(libm2log_la_SOURCES))) libm2log_la_CFLAGS = -I. -DBUILD_GM2_LIBS -I@srcdir@/../ libm2log_la_M2FLAGS = -I../libm2pim -I$(GM2_SRC)/gm2-libs-pim -I$(GM2_SRC)/gm2-libs -I$(GM2_SRC)/gm2-libs-iso -libm2log_la_LINK = $(LINK) -version-info $(libtool_VERSION) +if TARGET_DARWIN +libm2log_la_link_flags = -Wl,-undefined,dynamic_lookup +else +libm2log_la_link_flags = +endif +libm2log_la_LINK = $(LINK) -version-info $(libtool_VERSION) $(libm2log_la_link_flags) BUILT_SOURCES = ../libm2pim/SYSTEM.def M2LIBDIR = /m2/m2log/ diff --git a/libgm2/libm2log/Makefile.in b/libgm2/libm2log/Makefile.in index be8a59d2a56..15e0a5fc2c6 100644 --- a/libgm2/libm2log/Makefile.in +++ b/libgm2/libm2log/Makefile.in @@ -471,7 +471,9 @@ FLAGS_TO_PASS = $(AM_MAKEFLAGS) @BUILD_LOGLIB_TRUE@libm2log_la_DEPENDENCIES = ../libm2pim/SYSTEM.def $(addsuffix .lo, $(basename $(libm2log_la_SOURCES))) @BUILD_LOGLIB_TRUE@libm2log_la_CFLAGS = -I. -DBUILD_GM2_LIBS -I@srcdir@/../ @BUILD_LOGLIB_TRUE@libm2log_la_M2FLAGS = -I../libm2pim -I$(GM2_SRC)/gm2-libs-pim -I$(GM2_SRC)/gm2-libs -I$(GM2_SRC)/gm2-libs-iso -@BUILD_LOGLIB_TRUE@libm2log_la_LINK = $(LINK) -version-info $(libtool_VERSION) +@BUILD_LOGLIB_TRUE@@TARGET_DARWIN_FALSE@libm2log_la_link_flags = +@BUILD_LOGLIB_TRUE@@TARGET_DARWIN_TRUE@libm2log_la_link_flags = -Wl,-undefined,dynamic_lookup +@BUILD_LOGLIB_TRUE@libm2log_la_LINK = $(LINK) -version-info $(libtool_VERSION) $(libm2log_la_link_flags) @BUILD_LOGLIB_TRUE@BUILT_SOURCES = ../libm2pim/SYSTEM.def @BUILD_LOGLIB_TRUE@M2LIBDIR = /m2/m2log/ all: $(BUILT_SOURCES) diff --git a/libgm2/libm2min/Makefile.am b/libgm2/libm2min/Makefile.am index 667cca6f0aa..4d7726662e7 100644 --- a/libgm2/libm2min/Makefile.am +++ b/libgm2/libm2min/Makefile.am @@ -106,7 +106,12 @@ libm2min_la_DEPENDENCIES = SYSTEM.def $(addsuffix .lo, $(basename $(libm2min_la_ libm2min_la_CFLAGS = -I. -I$(GM2_SRC)/gm2-libs-min -I$(GM2_SRC)/gm2-libs libm2min_la_M2FLAGS = -I. -I$(GM2_SRC)/gm2-libs-min -I$(GM2_SRC)/gm2-libs -fno-exceptions \ -fno-m2-plugin -fno-scaffold-dynamic -fno-scaffold-main -libm2min_la_LINK = $(LINK) -version-info $(libtool_VERSION) +if TARGET_DARWIN +libm2min_la_link_flags = -Wl,-undefined,dynamic_lookup +else +libm2min_la_link_flags = +endif +libm2min_la_LINK = $(LINK) -version-info $(libtool_VERSION) $(libm2min_la_link_flags) BUILT_SOURCES = SYSTEM.def CLEANFILES = SYSTEM.def diff --git a/libgm2/libm2min/Makefile.in b/libgm2/libm2min/Makefile.in index 8210c2e2fa9..f8319959988 100644 --- a/libgm2/libm2min/Makefile.in +++ b/libgm2/libm2min/Makefile.in @@ -439,7 +439,9 @@ libm2min_la_CFLAGS = -I. -I$(GM2_SRC)/gm2-libs-min -I$(GM2_SRC)/gm2-libs libm2min_la_M2FLAGS = -I. -I$(GM2_SRC)/gm2-libs-min -I$(GM2_SRC)/gm2-libs -fno-exceptions \ -fno-m2-plugin -fno-scaffold-dynamic -fno-scaffold-main -libm2min_la_LINK = $(LINK) -version-info $(libtool_VERSION) +@TARGET_DARWIN_FALSE@libm2min_la_link_flags = +@TARGET_DARWIN_TRUE@libm2min_la_link_flags = -Wl,-undefined,dynamic_lookup +libm2min_la_LINK = $(LINK) -version-info $(libtool_VERSION) $(libm2min_la_link_flags) BUILT_SOURCES = SYSTEM.def CLEANFILES = SYSTEM.def M2LIBDIR = /m2/m2min/ diff --git a/libgm2/libm2pim/Makefile.am b/libgm2/libm2pim/Makefile.am index aa5904bb04e..98c9ca14579 100644 --- a/libgm2/libm2pim/Makefile.am +++ b/libgm2/libm2pim/Makefile.am @@ -33,7 +33,6 @@ slibdir = @slibdir@ toolexeclibdir=@toolexeclibdir@ toolexecdir=@toolexecdir@ -GM2_FOR_TARGET=@GM2_FOR_TARGET@ MULTIDIR := $(shell $(CC) $(CFLAGS) -print-multi-directory) MULTIOSDIR := $(shell $(CC) $(CFLAGS) -print-multi-os-directory) @@ -168,7 +167,12 @@ libm2pimdir = libm2pim libm2pim_la_DEPENDENCIES = SYSTEM.def $(addsuffix .lo, $(basename $(libm2pim_la_SOURCES))) libm2pim_la_CFLAGS = -I. -I.. -I$(GM2_SRC)/gm2-libs -I$(GM2_SRC)/gm2-libs-iso -DBUILD_GM2_LIBS -I@srcdir@/../ -I@srcdir@/../libm2iso libm2pim_la_M2FLAGS = -I. -I$(GM2_SRC)/gm2-libs -I$(GM2_SRC)/gm2-libs-iso -fm2-g -g -libm2pim_la_LINK = $(LINK) -version-info $(libtool_VERSION) +if TARGET_DARWIN +libm2pim_la_link_flags = -Wl,-undefined,dynamic_lookup +else +libm2pim_la_link_flags = +endif +libm2pim_la_LINK = $(LINK) -version-info $(libtool_VERSION) $(libm2pim_la_link_flags) BUILT_SOURCES = SYSTEM.def CLEANFILES = SYSTEM.def diff --git a/libgm2/libm2pim/Makefile.in b/libgm2/libm2pim/Makefile.in index ed14837c0a4..ab05ca9fb49 100644 --- a/libgm2/libm2pim/Makefile.in +++ b/libgm2/libm2pim/Makefile.in @@ -534,7 +534,9 @@ FLAGS_TO_PASS = $(AM_MAKEFLAGS) @BUILD_PIMLIB_TRUE@libm2pim_la_DEPENDENCIES = SYSTEM.def $(addsuffix .lo, $(basename $(libm2pim_la_SOURCES))) @BUILD_PIMLIB_TRUE@libm2pim_la_CFLAGS = -I. -I.. -I$(GM2_SRC)/gm2-libs -I$(GM2_SRC)/gm2-libs-iso -DBUILD_GM2_LIBS -I@srcdir@/../ -I@srcdir@/../libm2iso @BUILD_PIMLIB_TRUE@libm2pim_la_M2FLAGS = -I. -I$(GM2_SRC)/gm2-libs -I$(GM2_SRC)/gm2-libs-iso -fm2-g -g -@BUILD_PIMLIB_TRUE@libm2pim_la_LINK = $(LINK) -version-info $(libtool_VERSION) +@BUILD_PIMLIB_TRUE@@TARGET_DARWIN_FALSE@libm2pim_la_link_flags = +@BUILD_PIMLIB_TRUE@@TARGET_DARWIN_TRUE@libm2pim_la_link_flags = -Wl,-undefined,dynamic_lookup +@BUILD_PIMLIB_TRUE@libm2pim_la_LINK = $(LINK) -version-info $(libtool_VERSION) $(libm2pim_la_link_flags) @BUILD_PIMLIB_TRUE@BUILT_SOURCES = SYSTEM.def @BUILD_PIMLIB_TRUE@CLEANFILES = SYSTEM.def @BUILD_PIMLIB_TRUE@M2LIBDIR = /m2/m2pim/