From 579813d5eb21891e47ed1db04fb608193ba07006 Mon Sep 17 00:00:00 2001 From: Bernhard Urban-Forster Date: Mon, 17 Mar 2025 13:57:04 +0100 Subject: [PATCH] [GR-63069] Fix libffi warnings on Darwin * pass --disable-multi-os-directory to disable gcc specific option * patch up configure to deal properly with .dSYM directories on cleanup --- truffle/mx.truffle/mx_truffle.py | 11 ++-- ...produces-.dSYM-directories-on-Darwin.patch | 52 +++++++++++++++++++ 2 files changed, 59 insertions(+), 4 deletions(-) create mode 100644 truffle/src/libffi/patches/others/0001-gcc-g-produces-.dSYM-directories-on-Darwin.patch diff --git a/truffle/mx.truffle/mx_truffle.py b/truffle/mx.truffle/mx_truffle.py index 6e138474b7d8..36ceb5899c82 100644 --- a/truffle/mx.truffle/mx_truffle.py +++ b/truffle/mx.truffle/mx_truffle.py @@ -1670,10 +1670,13 @@ def getArchivableResults(self, use_relpath=True, single=False): os.path.join(self.out_dir, 'libffi-3.4.6')) configure_args = ['--disable-dependency-tracking', '--disable-shared', - '--with-pic', - ' CFLAGS="{}"'.format(' '.join(['-g', '-O3', '-fvisibility=hidden'] + (['-m64'] if mx.get_os() == 'solaris' else []))), - 'CPPFLAGS="-DNO_JAVA_RAW_API"', - ] + '--with-pic'] + + if mx.get_os() == 'darwin': + configure_args += ['--disable-multi-os-directory'] + + configure_args += [' CFLAGS="{}"'.format(' '.join(['-g', '-O3', '-fvisibility=hidden'] + (['-m64'] if mx.get_os() == 'solaris' else []))), + 'CPPFLAGS="-DNO_JAVA_RAW_API"'] self.delegate.buildEnv = dict( SOURCES=os.path.basename(self.delegate.dir), diff --git a/truffle/src/libffi/patches/others/0001-gcc-g-produces-.dSYM-directories-on-Darwin.patch b/truffle/src/libffi/patches/others/0001-gcc-g-produces-.dSYM-directories-on-Darwin.patch new file mode 100644 index 000000000000..fcfd6d9e2922 --- /dev/null +++ b/truffle/src/libffi/patches/others/0001-gcc-g-produces-.dSYM-directories-on-Darwin.patch @@ -0,0 +1,52 @@ +From 77b8644bd3ebb043bfd2c46ef5f4c409b0b597cc Mon Sep 17 00:00:00 2001 +From: Bernhard Urban-Forster +Date: Thu, 13 Mar 2025 20:46:22 +0100 +Subject: [PATCH] gcc -g produces .dSYM directories on Darwin + +Workaround to get rid of this warning: +``` +rm: conftest.dSYM: is a directory +``` + +Can be removed once libffi packages their tarballs with a recent enough `automake`, see: +- GR-63069 +- https://github.com/autotools-mirror/automake/commit/cb537c9f1de660e6d7b269179f9406cd24ab5a36 + +--- + configure | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/configure b/configure +index bcbbd44..f651133 100755 +--- a/configure ++++ b/configure +@@ -5063,7 +5063,7 @@ _ACEOF + break + fi + done +- rm -f core conftest* ++ rm -rf core conftest* + unset am_i + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +@@ -6667,7 +6667,7 @@ else $as_nop + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi +- rm -f conftest* ++ rm -rf conftest* + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 + printf "%s\n" "$lt_cv_nm_interface" >&6; } +@@ -7776,7 +7776,7 @@ then : + rm -f conftest.* libconftest.a + + fi +-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ++rm -rf core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 +-- +2.48.1 +