[MacPorts] #60893: gcc5 unusable in trace mode (was: mysql8: can't configure with gcc5 under tracemode)

MacPorts noreply at macports.org
Thu Jul 23 18:10:13 UTC 2020


#60893: gcc5 unusable in trace mode
---------------------------+--------------------------------
  Reporter:  chrstphrchvz  |      Owner:  macports-tickets@…
      Type:  defect        |     Status:  assigned
  Priority:  Normal        |  Milestone:
 Component:  ports         |    Version:  2.6.3
Resolution:                |   Keywords:
      Port:  gcc5          |
---------------------------+--------------------------------
Changes (by chrstphrchvz):

 * owner:  herbygillot => macports-tickets@…
 * port:  mysql8 => gcc5


Old description:

> (Ticket 1 of 2) The mysql8 port was set to avoid compiling with gcc5
> initially in [f33623dd62/macports-ports] and refined in [3db241d4f4
> /macports-ports], [93573a70d6/macports-ports]. But I have not found a
> detailed explanation of why this was done. Note that
> [https://dev.mysql.com/doc/refman/8.0/en/source-installation-
> prerequisites.html upstream documentation] only mentions support for
> building on macOS with Xcode 9 or later; the port bypasses this check
> (#58579).
>
> Using `compiler.whitelist macports-gcc-5`, configuring the port fails
> when using tracemode (configuration succeeds without trace mode, but the
> build still fails eventually: #60894):
>
> {{{
> --->  Configuring mysql8
>         (using ccache)
> Executing:  cd
> "/opt/local/var/macports/build/_opt_local_var_macports_sources_github
> .com_macports_macports-ports_databases_mysql8/mysql8/work/build" &&
> /opt/local/bin/cmake -G "CodeBlocks - Unix Makefiles"
> -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="/opt/local"
> -DCMAKE_INSTALL_NAME_DIR="/opt/local/lib"
> -DCMAKE_SYSTEM_PREFIX_PATH="/opt/local;/usr"
> -DCMAKE_C_COMPILER_LAUNCHER=/opt/local/bin/ccache
> -DCMAKE_CXX_COMPILER_LAUNCHER=/opt/local/bin/ccache
> -DCMAKE_C_COMPILER="$CC" -DCMAKE_CXX_COMPILER="$CXX"
> -DCMAKE_POLICY_DEFAULT_CMP0025=NEW -DCMAKE_POLICY_DEFAULT_CMP0060=NEW
> -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_COLOR_MAKEFILE=ON
> -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
> -DCMAKE_MAKE_PROGRAM=/usr/bin/make
> -DCMAKE_MODULE_PATH="/opt/local/share/cmake/Modules"
> -DCMAKE_PREFIX_PATH="/opt/local/share/cmake/Modules"
> -DCMAKE_INSTALL_RPATH=";/opt/local/lib" -Wno-dev -DWITH_DEBUG=OFF
> -DWITH_DTRACE:BOOL=OFF -DWITH_UNIT_TESTS=OFF
> -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=OFF
> -DCMAKE_INSTALL_NAME_DIR:PATH="/opt/local/lib/mysql8/mysql"
> -DFORCE_UNSUPPORTED_COMPILER=ON -DDOWNLOAD_BOOST=0
> -DENABLE_DOWNLOADS:BOOL=OFF -DINSTALL_LAYOUT:STRING=MACPORTS
> -DMYSQL_DATADIR:PATH="/opt/local/var/db/mysql8"
> -DMYSQL_UNIX_ADDR:PATH="/opt/local/var/run/mysql8/mysqld.sock"
> -DSYSCONFDIR:PATH="/opt/local/etc/mysql8"
> -DWITH_BOOST:PATH="/opt/local/var/macports/build/_opt_local_var_macports_sources_github
> .com_macports_macports-
> ports_databases_mysql8/mysql8/work/mysql-8.0.21/../boost_1_72_0"
> -DWITH_ICU:PATH="/opt/local" -DWITH_INNODB_MEMCACHED=1
> -DWITH_PROTOBUF=bundled -DWITH_SASL:PATH="/opt/local"
> -DWITH_SSL:PATH="/opt/local" -DWITH_ZLIB:PATH="/opt/local"
> -DWITH_ZSTD=system -DWITH_ROUTER:BOOL=OFF
> -DCMAKE_OSX_ARCHITECTURES="x86_64" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.15"
> -DCMAKE_OSX_SYSROOT="/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk"
> /opt/local/var/macports/build/_opt_local_var_macports_sources_github
> .com_macports_macports-ports_databases_mysql8/mysql8/work/mysql-8.0.21
> -- Running cmake version 3.17.3
> -- Found Git: /usr/bin/git (found version "2.24.3 (Apple Git-128)")
> -- MySQL 8.0.21
> -- The C compiler identification is GNU 5.5.0
> -- The CXX compiler identification is GNU 5.5.0
> -- Checking whether C compiler has -isysroot
> -- Checking whether C compiler has -isysroot - yes
> -- Checking whether C compiler supports OSX deployment target flag
> -- Checking whether C compiler supports OSX deployment target flag - yes
> -- Check for working C compiler: /opt/local/bin/gcc-mp-5
> -- Check for working C compiler: /opt/local/bin/gcc-mp-5 - broken
> CMake Error at
> /opt/local/share/cmake-3.17/Modules/CMakeTestCCompiler.cmake:60
> (message):
>   The C compiler
>
>     "/opt/local/bin/gcc-mp-5"
>
>   is not able to compile a simple test program.
>
>   It fails with the following output:
>
>     Change Dir:
> /opt/local/var/macports/build/_opt_local_var_macports_sources_github
> .com_macports_macports-
> ports_databases_mysql8/mysql8/work/build/CMakeFiles/CMakeTmp
>
>     Run Build Command(s):/usr/bin/make cmTC_4632c/fast &&
> /Library/Developer/CommandLineTools/usr/bin/make  -f
> CMakeFiles/cmTC_4632c.dir/build.make CMakeFiles/cmTC_4632c.dir/build
>     Building C object CMakeFiles/cmTC_4632c.dir/testCCompiler.c.o
>     /opt/local/bin/gcc-mp-5   -pipe -Os -DNDEBUG -I/opt/local/include
> -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk  -arch
> x86_64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk
> -mmacosx-version-min=10.15   -o
> CMakeFiles/cmTC_4632c.dir/testCCompiler.c.o   -c
> /opt/local/var/macports/build/_opt_local_var_macports_sources_github
> .com_macports_macports-
> ports_databases_mysql8/mysql8/work/build/CMakeFiles/CMakeTmp/testCCompiler.c
>     Linking C executable cmTC_4632c
>     /opt/local/bin/cmake -E cmake_link_script
> CMakeFiles/cmTC_4632c.dir/link.txt --verbose=1
>     /opt/local/bin/gcc-mp-5 -pipe -Os -DNDEBUG -I/opt/local/include
> -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk  -arch
> x86_64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk
> -mmacosx-version-min=10.15 -Wl,-search_paths_first
> -Wl,-headerpad_max_install_names -L/opt/local/lib
> -Wl,-headerpad_max_install_names
> -Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk
> CMakeFiles/cmTC_4632c.dir/testCCompiler.c.o  -o cmTC_4632c
>     collect2: fatal error: close: Bad file descriptor
>     compilation terminated.
>     make[1]: *** [cmTC_4632c] Error 1
>     make[1]: *** Deleting file `cmTC_4632c'
>     make: *** [cmTC_4632c/fast] Error 2
>

>

>
>   CMake will not be able to correctly generate this project.
> Call Stack (most recent call first):
>   CMakeLists.txt:354 (PROJECT)
>

> -- Configuring incomplete, errors occurred!
> }}}

New description:

 **Edit**: ticket was originally for `mysql8`, but other simpler ports
 (e.g. `pv`) appear to be affected.

 Using `compiler.whitelist macports-gcc-5` to force compiling with `gcc5`,
 a port fails to configure/build using trace mode. Example with `mysql8`:

 {{{
 --->  Configuring mysql8
         (using ccache)
 Executing:  cd
 "/opt/local/var/macports/build/_opt_local_var_macports_sources_github
 .com_macports_macports-ports_databases_mysql8/mysql8/work/build" &&
 /opt/local/bin/cmake -G "CodeBlocks - Unix Makefiles"
 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="/opt/local"
 -DCMAKE_INSTALL_NAME_DIR="/opt/local/lib"
 -DCMAKE_SYSTEM_PREFIX_PATH="/opt/local;/usr"
 -DCMAKE_C_COMPILER_LAUNCHER=/opt/local/bin/ccache
 -DCMAKE_CXX_COMPILER_LAUNCHER=/opt/local/bin/ccache
 -DCMAKE_C_COMPILER="$CC" -DCMAKE_CXX_COMPILER="$CXX"
 -DCMAKE_POLICY_DEFAULT_CMP0025=NEW -DCMAKE_POLICY_DEFAULT_CMP0060=NEW
 -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_COLOR_MAKEFILE=ON
 -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
 -DCMAKE_MAKE_PROGRAM=/usr/bin/make
 -DCMAKE_MODULE_PATH="/opt/local/share/cmake/Modules"
 -DCMAKE_PREFIX_PATH="/opt/local/share/cmake/Modules"
 -DCMAKE_INSTALL_RPATH=";/opt/local/lib" -Wno-dev -DWITH_DEBUG=OFF
 -DWITH_DTRACE:BOOL=OFF -DWITH_UNIT_TESTS=OFF
 -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=OFF
 -DCMAKE_INSTALL_NAME_DIR:PATH="/opt/local/lib/mysql8/mysql"
 -DFORCE_UNSUPPORTED_COMPILER=ON -DDOWNLOAD_BOOST=0
 -DENABLE_DOWNLOADS:BOOL=OFF -DINSTALL_LAYOUT:STRING=MACPORTS
 -DMYSQL_DATADIR:PATH="/opt/local/var/db/mysql8"
 -DMYSQL_UNIX_ADDR:PATH="/opt/local/var/run/mysql8/mysqld.sock"
 -DSYSCONFDIR:PATH="/opt/local/etc/mysql8"
 -DWITH_BOOST:PATH="/opt/local/var/macports/build/_opt_local_var_macports_sources_github
 .com_macports_macports-
 ports_databases_mysql8/mysql8/work/mysql-8.0.21/../boost_1_72_0"
 -DWITH_ICU:PATH="/opt/local" -DWITH_INNODB_MEMCACHED=1
 -DWITH_PROTOBUF=bundled -DWITH_SASL:PATH="/opt/local"
 -DWITH_SSL:PATH="/opt/local" -DWITH_ZLIB:PATH="/opt/local"
 -DWITH_ZSTD=system -DWITH_ROUTER:BOOL=OFF
 -DCMAKE_OSX_ARCHITECTURES="x86_64" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.15"
 -DCMAKE_OSX_SYSROOT="/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk"
 /opt/local/var/macports/build/_opt_local_var_macports_sources_github
 .com_macports_macports-ports_databases_mysql8/mysql8/work/mysql-8.0.21
 -- Running cmake version 3.17.3
 -- Found Git: /usr/bin/git (found version "2.24.3 (Apple Git-128)")
 -- MySQL 8.0.21
 -- The C compiler identification is GNU 5.5.0
 -- The CXX compiler identification is GNU 5.5.0
 -- Checking whether C compiler has -isysroot
 -- Checking whether C compiler has -isysroot - yes
 -- Checking whether C compiler supports OSX deployment target flag
 -- Checking whether C compiler supports OSX deployment target flag - yes
 -- Check for working C compiler: /opt/local/bin/gcc-mp-5
 -- Check for working C compiler: /opt/local/bin/gcc-mp-5 - broken
 CMake Error at
 /opt/local/share/cmake-3.17/Modules/CMakeTestCCompiler.cmake:60 (message):
   The C compiler

     "/opt/local/bin/gcc-mp-5"

   is not able to compile a simple test program.

   It fails with the following output:

     Change Dir:
 /opt/local/var/macports/build/_opt_local_var_macports_sources_github
 .com_macports_macports-
 ports_databases_mysql8/mysql8/work/build/CMakeFiles/CMakeTmp

     Run Build Command(s):/usr/bin/make cmTC_4632c/fast &&
 /Library/Developer/CommandLineTools/usr/bin/make  -f
 CMakeFiles/cmTC_4632c.dir/build.make CMakeFiles/cmTC_4632c.dir/build
     Building C object CMakeFiles/cmTC_4632c.dir/testCCompiler.c.o
     /opt/local/bin/gcc-mp-5   -pipe -Os -DNDEBUG -I/opt/local/include
 -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk  -arch
 x86_64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk
 -mmacosx-version-min=10.15   -o
 CMakeFiles/cmTC_4632c.dir/testCCompiler.c.o   -c
 /opt/local/var/macports/build/_opt_local_var_macports_sources_github
 .com_macports_macports-
 ports_databases_mysql8/mysql8/work/build/CMakeFiles/CMakeTmp/testCCompiler.c
     Linking C executable cmTC_4632c
     /opt/local/bin/cmake -E cmake_link_script
 CMakeFiles/cmTC_4632c.dir/link.txt --verbose=1
     /opt/local/bin/gcc-mp-5 -pipe -Os -DNDEBUG -I/opt/local/include
 -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk  -arch
 x86_64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk
 -mmacosx-version-min=10.15 -Wl,-search_paths_first
 -Wl,-headerpad_max_install_names -L/opt/local/lib
 -Wl,-headerpad_max_install_names
 -Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk
 CMakeFiles/cmTC_4632c.dir/testCCompiler.c.o  -o cmTC_4632c
     collect2: fatal error: close: Bad file descriptor
     compilation terminated.
     make[1]: *** [cmTC_4632c] Error 1
     make[1]: *** Deleting file `cmTC_4632c'
     make: *** [cmTC_4632c/fast] Error 2





   CMake will not be able to correctly generate this project.
 Call Stack (most recent call first):
   CMakeLists.txt:354 (PROJECT)


 -- Configuring incomplete, errors occurred!
 }}}

--

Comment:

 gcc5 seemed to work without trace mode (see #60894). However trying to
 compile another simple port `pv` in trace mode fails, so this issue might
 indeed have nothing to do with `mysql8`. I'm not sure if this issue is in
 gcc5 or possibly in trace mode itself (base).

 {{{
 --->  Configuring pv
 Executing:  cd
 "/opt/local/var/macports/build/_opt_local_var_macports_sources_github
 .com_macports_macports-ports_sysutils_pv/pv/work/pv-1.6.6" && ./configure
 --prefix=/opt/local --mandir=/opt/local/share/man
 --infodir=/opt/local/share/info
 checking for gcc... /opt/local/bin/gcc-mp-5
 checking for C compiler default output file name...
 configure: error: in
 `/opt/local/var/macports/build/_opt_local_var_macports_sources_github
 .com_macports_macports-ports_sysutils_pv/pv/work/pv-1.6.6':
 configure: error: C compiler cannot create executables
 }}}

-- 
Ticket URL: <https://trac.macports.org/ticket/60893#comment:2>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list