From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 39581 invoked by alias); 14 Feb 2018 22:36:39 -0000 Mailing-List: contact jit-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Subscribe: Sender: jit-owner@gcc.gnu.org Received: (qmail 39559 invoked by uid 89); 14 Feb 2018 22:36:38 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Checked: by ClamAV 0.99.2 on sourceware.org X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=H*c:MHil, H*c:HHHHHHHH, H*c:HHHH, H*c:HpplH X-Spam-Status: No, score=-1.9 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on sourceware.org X-Spam-Level: X-Spam-User: qpsmtpd, 2 recipients X-HELO: mail-wm0-f48.google.com Received: from mail-wm0-f48.google.com (HELO mail-wm0-f48.google.com) (74.125.82.48) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 14 Feb 2018 22:36:37 +0000 Received: by mail-wm0-f48.google.com with SMTP id t74so25615261wme.3; Wed, 14 Feb 2018 14:36:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:mime-version:subject:date:references:to:in-reply-to:message-id; bh=ODdjPoZVGC3ug/EDmEvj9nwqSGsuk+5bJOHRbu4WIic=; b=bF+zPEFsDY9D1zd9cM6xaKmaCDCwvv5P2g/zvnk7to5ZFHyeQ6RkqHleLaMMMfXRdy EjOw8fzXDsp3QUGz+r6nFLC51REoBcyArYExgN6O0oNYaJlFREZj0RJ1V0qblPiWsnb9 Ky7BCN19HHhTsYsszUE692vE2npUE93UgeAjfh3OB7afTWP12xQLhGvmUf9T6GQF9BNn fcRELzj16CTiDfPJMWHBz0RceaxEaKHkOUqdz4aMEyGTbNGX0qxbUfp+/zkZGE0FKeld fCOVGQwIOqqSEWqwCWdH66lnygrBDWXUF0pVZYgB0TlCDQJ5a4lmdMjGvcyG63pvf2FF HkKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:mime-version:subject:date:references:to :in-reply-to:message-id; bh=ODdjPoZVGC3ug/EDmEvj9nwqSGsuk+5bJOHRbu4WIic=; b=JJVvu73+g8ji7rgwJKc69nB84AKIQA5z1UCmxDm4Ll0XhN2I16pAd42GTa/YHMzl4X umWQZE7HQ/hVIy1RxiBZF16OdgwbXzYUnQBLDUyx8ZJqFoZN57yiWt0CsqvtJsG54x/c wHZvNLwKOWs1BMLmQA6UsfIuMg0v43Avf68K3pjimvd69EtSnIwsb3+yqtHzsr5hZCKG BKKlL7WEHT6PFUykVoC/wu6PsHnSQlquc+CmOHSUMuqAhr+Qvsv8VHXHrG7IkH0psrLS NvF0YH4nRFYMsDexFXIAXH7J/Dtk5kiRYz/O+d/tWcIrTq0WBOiLKFcQlUatvzHBmDc9 BVxQ== X-Gm-Message-State: APf1xPAGDVvtaET9EXhAEYF2y63vTQ0B0nY/SAl0nxA0trWxHU1ynCyO z29xe8d2njHHUoEPyJofR3meUnMa X-Google-Smtp-Source: AH8x2244qPhgUifHJsuw/P6SQRjR/KNdUBJM66X+nMMoLJng81B5CKbLrtcMSePTWW9TqwknrM/ofQ== X-Received: by 10.80.134.78 with SMTP id 14mr609234edt.307.1518647795269; Wed, 14 Feb 2018 14:36:35 -0800 (PST) Received: from [192.168.1.8] ([78.194.136.203]) by smtp.gmail.com with ESMTPSA id g7sm8792098edf.76.2018.02.14.14.36.32 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 14 Feb 2018 14:36:33 -0800 (PST) From: FX Content-Type: multipart/mixed; boundary="Apple-Mail=_821248A0-2B80-42F9-8311-0E50B62B1716" Mime-Version: 1.0 (Mac OS X Mail 11.2 \(3445.5.20\)) Subject: Re: [PATCH] jit: fix link on OS X and Solaris (PR jit/64089 and PR jit/84288) Date: Mon, 01 Jan 2018 00:00:00 -0000 References: <78D7B2DA-5677-4211-9C4E-F7B1B5AB51B5@gmail.com> <1518556781-10049-1-git-send-email-dmalcolm@redhat.com> To: David Malcolm , Rainer Orth , gcc patches , jit@gcc.gnu.org In-Reply-To: Message-Id: <7D041128-A426-4B64-A0A2-8588B7F9984B@gmail.com> X-Mailer: Apple Mail (2.3445.5.20) X-SW-Source: 2018-q1/txt/msg00006.txt.bz2 --Apple-Mail=_821248A0-2B80-42F9-8311-0E50B62B1716 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii Content-length: 153 I can confirm that, with the attached revised patch, a bootstrap with --ena= ble-languages=3Dc,c++,jit --enable-host-shared is successful on macOS. FX --Apple-Mail=_821248A0-2B80-42F9-8311-0E50B62B1716 Content-Disposition: attachment; filename=patch Content-Type: application/octet-stream; x-unix-mode=0644; name="patch" Content-Transfer-Encoding: 7bit Content-length: 6365 Index: gcc/Makefile.in =================================================================== --- gcc/Makefile.in (revision 257657) +++ gcc/Makefile.in (working copy) @@ -1116,6 +1116,10 @@ endif LANG_MAKEFRAGS = @all_lang_makefrags@ +# Used by gcc/jit/Make-lang.in +LD_VERSION_SCRIPT_OPTION = @ld_version_script_option@ +LD_SONAME_OPTION = @ld_soname_option@ + # Flags to pass to recursive makes. # CC is set by configure. # ??? The choices here will need some experimenting with. Index: gcc/configure =================================================================== --- gcc/configure (revision 257657) +++ gcc/configure (working copy) @@ -680,6 +680,8 @@ zlibdir HOST_LIBS enable_default_ssp thin_archive_support +ld_soname_option +ld_version_script_option libgcc_visibility gcc_cv_readelf gcc_cv_objdump @@ -18446,7 +18448,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 18449 "configure" +#line 18451 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -18552,7 +18554,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 18555 "configure" +#line 18557 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -24453,6 +24455,48 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_ld_static_dynamic" >&5 $as_echo "$gcc_cv_ld_static_dynamic" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking linker --version-script option" >&5 +$as_echo_n "checking linker --version-script option... " >&6; } +gcc_cv_ld_version_script=no +ld_version_script_option='' +if test $in_tree_ld = yes || test x"$gnu_ld" = xyes; then + gcc_cv_ld_version_script=yes + ld_version_script_option='--version-script' +elif test x$gcc_cv_ld != x; then + case "$target" in + # Solaris 2 ld always supports -M. It also supports a subset of + # --version-script since Solaris 11.4, but requires + # -z gnu-version-script-compat to activate. + *-*-solaris2*) + gcc_cv_ld_version_script=yes + ld_version_script_option='-M' + ;; + esac +fi +# Don't AC_DEFINE result, only used in jit/Make-lang.in so far. +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_ld_version_script" >&5 +$as_echo "$gcc_cv_ld_version_script" >&6; } + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking linker soname option" >&5 +$as_echo_n "checking linker soname option... " >&6; } +gcc_cv_ld_soname=no +if test $in_tree_ld = yes || test x"$gnu_ld" = xyes; then + gcc_cv_ld_soname=yes + ld_soname_option='-soname' +elif test x$gcc_cv_ld != x; then + case "$target" in + *-*-darwin*) + gcc_cv_ld_soname=yes + ld_soname_option='-install_name' + ;; + esac +fi +# Don't AC_DEFINE result, only used in jit/Make-lang.in so far. +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_ld_soname" >&5 +$as_echo "$gcc_cv_ld_soname" >&6; } + + if test x"$demangler_in_ld" = xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker --demangle support" >&5 $as_echo_n "checking linker --demangle support... " >&6; } @@ -27870,6 +27914,7 @@ if test $gcc_cv_as_dwarf2_debug_view = y $as_echo "#define HAVE_AS_DWARF2_DEBUG_VIEW 1" >>confdefs.h fi + fi fi Index: gcc/configure.ac =================================================================== --- gcc/configure.ac (revision 257657) +++ gcc/configure.ac (working copy) @@ -3655,6 +3655,44 @@ if test x"$gcc_cv_ld_static_dynamic" = x fi AC_MSG_RESULT($gcc_cv_ld_static_dynamic) +AC_MSG_CHECKING(linker --version-script option) +gcc_cv_ld_version_script=no +ld_version_script_option='' +if test $in_tree_ld = yes || test x"$gnu_ld" = xyes; then + gcc_cv_ld_version_script=yes + ld_version_script_option='--version-script' +elif test x$gcc_cv_ld != x; then + case "$target" in + # Solaris 2 ld always supports -M. It also supports a subset of + # --version-script since Solaris 11.4, but requires + # -z gnu-version-script-compat to activate. + *-*-solaris2*) + gcc_cv_ld_version_script=yes + ld_version_script_option='-M' + ;; + esac +fi +# Don't AC_DEFINE result, only used in jit/Make-lang.in so far. +AC_MSG_RESULT($gcc_cv_ld_version_script) +AC_SUBST(ld_version_script_option) + +AC_MSG_CHECKING(linker soname option) +gcc_cv_ld_soname=no +if test $in_tree_ld = yes || test x"$gnu_ld" = xyes; then + gcc_cv_ld_soname=yes + ld_soname_option='-soname' +elif test x$gcc_cv_ld != x; then + case "$target" in + *-*-darwin*) + gcc_cv_ld_soname=yes + ld_soname_option='-install_name' + ;; + esac +fi +# Don't AC_DEFINE result, only used in jit/Make-lang.in so far. +AC_MSG_RESULT($gcc_cv_ld_soname) +AC_SUBST(ld_soname_option) + if test x"$demangler_in_ld" = xyes; then AC_MSG_CHECKING(linker --demangle support) gcc_cv_ld_demangle=no Index: gcc/jit/Make-lang.in =================================================================== --- gcc/jit/Make-lang.in (revision 257657) +++ gcc/jit/Make-lang.in (working copy) @@ -51,6 +51,19 @@ LIBGCCJIT_FILENAME = \ LIBGCCJIT_LINKER_NAME_SYMLINK = $(LIBGCCJIT_LINKER_NAME) LIBGCCJIT_SONAME_SYMLINK = $(LIBGCCJIT_SONAME) +# Conditionalize the use of the LD_VERSION_SCRIPT_OPTION and +# LD_SONAME_OPTION depending if configure found them, using $(if) +# We have to define a COMMA here, otherwise the commas in the "true" +# result are treated as separators by the $(if). +COMMA := , +LIBGCCJIT_VERSION_SCRIPT_OPTION = \ + $(if $(LD_VERSION_SCRIPT_OPTION),\ + -Wl$(COMMA)$(LD_VERSION_SCRIPT_OPTION)$(COMMA)$(srcdir)/jit/libgccjit.map) + +LIBGCCJIT_SONAME_OPTION = \ + $(if $(LD_SONAME_OPTION), \ + -Wl$(COMMA)$(LD_SONAME_OPTION)$(COMMA)$(LIBGCCJIT_SONAME)) + jit: $(LIBGCCJIT_FILENAME) \ $(LIBGCCJIT_SYMLINK) \ $(LIBGCCJIT_LINKER_NAME_SYMLINK) \ @@ -85,8 +98,8 @@ $(LIBGCCJIT_FILENAME): $(jit_OBJS) \ $(jit_OBJS) libbackend.a libcommon-target.a libcommon.a \ $(CPPLIB) $(LIBDECNUMBER) $(LIBS) $(BACKENDLIBS) \ $(EXTRA_GCC_OBJS) \ - -Wl,--version-script=$(srcdir)/jit/libgccjit.map \ - -Wl,-soname,$(LIBGCCJIT_SONAME) + $(LIBGCCJIT_VERSION_SCRIPT_OPTION) \ + $(LIBGCCJIT_SONAME_OPTION) $(LIBGCCJIT_SONAME_SYMLINK): $(LIBGCCJIT_FILENAME) ln -sf $(LIBGCCJIT_FILENAME) $(LIBGCCJIT_SONAME_SYMLINK) --Apple-Mail=_821248A0-2B80-42F9-8311-0E50B62B1716--