Opened 3 months ago

Last modified 3 months ago

#70522 new defect

postgis3 violates MacPorts compiler setting

Reported by: barracuda156 Owned by:
Priority: Normal Milestone:
Component: ports Version: 2.10.0
Keywords: Cc: Veence (Vincent), nilason (Nicklas Larsson)
Port: postgis3

Description

We have the same issue which we had with pdal:

--->  Configuring pg16-postgis3
Executing:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_databases_postgis3/pg16-postgis3/work/postgis-3.4.2" && ./configure --prefix=/opt/local --without-address-standardizer --with-raster --without-sfcgal --with-topology --libdir=/opt/local/lib/postgresql16 --bindir=/opt/local/lib/postgresql16/bin --with-pgconfig=/opt/local/lib/postgresql16/bin/pg_config PROJ_CFLAGS=-I/opt/local/lib/proj9/include PROJ_LIBS="-L/opt/local/lib/proj9/lib -lproj" --with-gdalconfig=/opt/local/bin/gdal-config 
checking for a BSD-compatible install... /usr/bin/install -c
checking build system type... powerpc-apple-darwin10.0.0d2
checking host system type... powerpc-apple-darwin10.0.0d2
checking how to print strings... printf
checking for gcc... ccache /opt/local/bin/gcc-mp-14
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether ccache /opt/local/bin/gcc-mp-14 accepts -g... yes
checking for ccache /opt/local/bin/gcc-mp-14 option to accept ISO C89... none needed
checking for a sed that does not truncate output... /opt/local/bin/gsed
checking for grep that handles long lines and -e... /opt/local/bin/ggrep
checking for egrep... /opt/local/bin/ggrep -E
checking for fgrep... /opt/local/bin/ggrep -F
checking for ld used by ccache /opt/local/bin/gcc-mp-14... /opt/local/bin/ld
checking if the linker (/opt/local/bin/ld) is GNU ld... no
checking for BSD- or MS-compatible name lister (nm)... /opt/local/bin/nm -B
checking the name lister (/opt/local/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 196608
checking how to convert powerpc-apple-darwin10.0.0d2 file names to powerpc-apple-darwin10.0.0d2 format... func_convert_file_noop
checking how to convert powerpc-apple-darwin10.0.0d2 file names to toolchain format... func_convert_file_noop
checking for /opt/local/bin/ld option to reload object files... -r
checking for objdump... no
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking whether we are using Clang... no
checking whether we are using the GNU C compiler... (cached) yes
checking for gcc-ar... no
checking for ar... ar
checking whether we are using Clang... (cached) no
checking whether we are using the GNU C compiler... (cached) yes
checking for gcc-ranlib... no
checking for ranlib... ranlib
checking for archiver @FILE support... no
checking for strip... strip
checking for ranlib... (cached) ranlib
checking for gawk... gawk
checking command to parse /opt/local/bin/nm -B output from ccache /opt/local/bin/gcc-mp-14 object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for mt... no
checking if : is a manifest tool... no
checking for dsymutil... dsymutil
checking for nmedit... nmedit
checking for lipo... lipo
checking for otool... otool
checking for otool64... no
checking for -single_module linker flag... yes
checking for -exported_symbols_list linker flag... yes
checking for -force_load linker flag... yes
checking how to run the C preprocessor... ccache /opt/local/bin/gcc-mp-14 -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if ccache /opt/local/bin/gcc-mp-14 supports -fno-rtti -fno-exceptions... no
checking for ccache /opt/local/bin/gcc-mp-14 option to produce PIC... -fno-common -DPIC
checking if ccache /opt/local/bin/gcc-mp-14 PIC flag -fno-common -DPIC works... yes
checking if ccache /opt/local/bin/gcc-mp-14 static flag -static works... no
checking if ccache /opt/local/bin/gcc-mp-14 supports -c -o file.o... yes
checking if ccache /opt/local/bin/gcc-mp-14 supports -c -o file.o... (cached) yes
checking whether the ccache /opt/local/bin/gcc-mp-14 linker (/opt/local/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... darwin10.0.0d2 dyld
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for gcc... (cached) ccache /opt/local/bin/gcc-mp-14
checking whether we are using the GNU C compiler... (cached) yes
checking whether ccache /opt/local/bin/gcc-mp-14 accepts -g... (cached) yes
checking for ccache /opt/local/bin/gcc-mp-14 option to accept ISO C89... (cached) none needed
checking how to run the C preprocessor... ccache /opt/local/bin/gcc-mp-14 -E
checking for grep that handles long lines and -e... (cached) /opt/local/bin/ggrep
checking whether byte ordering is bigendian... yes
checking for cpp... /opt/local/bin/cpp-mp-14
checking if ccache /opt/local/bin/gcc-mp-14 supports -fno-math-errno... yes
checking if ccache /opt/local/bin/gcc-mp-14 supports -fno-signed-zeros... yes
checking if ccache /opt/local/bin/gcc-mp-14 supports -std=gnu99... yes
checking if ccache /opt/local/bin/gcc-mp-14 supports --exclude-libs... no
checking for flex... flex
checking lex output file root... lex.yy
checking lex library... -lfl
checking whether yytext is a pointer... yes
checking for bison... /opt/local/bin/bison
checking ieeefp.h usability... no
checking ieeefp.h presence... no
checking for ieeefp.h... no
checking termios.h usability... yes
checking termios.h presence... yes
checking for termios.h... yes
checking for vasprintf... yes
checking for asprintf... yes
checking for _LARGEFILE_SOURCE value needed for large files... no
checking for perl... /opt/local/bin/perl
checking for xsltproc... /opt/local/bin/xsltproc
checking for xml2pot... no
configure: WARNING: xml2pot is not installed so translations cannot be updated
checking for msgmerge... /opt/local/bin/msgmerge
checking for msgattrib... /opt/local/bin/msgattrib
checking for msginit... /opt/local/bin/msginit
checking for convert... /opt/local/bin/convert
checking for dblatex... no
configure: WARNING: dblatex is not installed so PDF documentation cannot be built
checking for dbtoepub... no
configure: WARNING: dbtoepub is not installed so EPUB documentation cannot be built
checking for xmllint... /opt/local/bin/xmllint
checking for html/docbook.xsl in directory /usr/share/sgml/docbook/xsl-stylesheets...... not found
checking for html/docbook.xsl in directory /usr/share/xml/docbook/stylesheet/docbook-xsl...... not found
checking for html/docbook.xsl in directory /usr/share/xml/docbook/stylesheet/docbook-xsl-ns...... not found
checking for html/docbook.xsl in directory /usr/share/xml/docbook/stylesheet/nwalsh...... not found
checking for html/docbook.xsl in directory /usr/share/sgml/docbook/stylesheet/xsl/nwalsh...... not found
checking for html/docbook.xsl in directory /opt/local/share/xsl/docbook-xsl...... not found
checking for html/docbook.xsl in directory /usr/local/opt/docbook-xsl/docbook-xsl...... not found
checking for html/docbook.xsl in directory /usr/local/share/xsl/docbook-xsl...... not found
checking for html/docbook.xsl in directory /usr/share/xsl/docbook-xsl...... not found
configure: WARNING: could not locate Docbook stylesheets required to build the documentation
checking for pkg-config... /opt/local/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for CUNIT... yes
checking iconv.h usability... yes
checking iconv.h presence... yes
checking for iconv.h... yes
checking for libiconv_open in -liconv... yes
checking for iconvctl... no
checking for libiconvctl... no
Using user-specified pg_config file: /opt/local/lib/postgresql16/bin/pg_config
checking PostgreSQL version... PostgreSQL 16.3
checking libpq-fe.h usability... yes
checking libpq-fe.h presence... yes
checking for libpq-fe.h... yes
checking for PQserverVersion in -lpq... yes
------------------------------------------------------------------------
  WARNING: You have set the --prefix to '/opt/local'. But we mostly    
  ignore the --prefix. For your info, using the values determined from 
  /opt/local/lib/postgresql16/bin/pg_config we will be installing:   
    * postgis shared library in /opt/local/lib/postgresql16 
    * postgis SQL files in /opt/local/share/postgresql16/contrib/postgis-3.4 
------------------------------------------------------------------------
checking for xml2-config... /opt/local/bin/xml2-config
checking for xcrun... /usr/bin/xcrun
xcrun: error: unrecognized option: --show-sdk-version

usage: 
xcrun [-verbose] [-no-cache] [-sdk <sdkroot>] [-log] [-run] <utility> [argument ...]
xcrun [-verbose] [-no-cache] [-sdk <sdkroot>] -find <utility> 
<tool> [tool arguments ...]
./configure: line 15491: test: =: unary operator expected
using OSX XCode ... yes
checking libxml/tree.h usability... yes
checking libxml/tree.h presence... yes
checking for libxml/tree.h... yes
checking libxml/parser.h usability... yes
checking libxml/parser.h presence... yes
checking for libxml/parser.h... yes
checking libxml/xpath.h usability... yes
checking libxml/xpath.h presence... yes
checking for libxml/xpath.h... yes
checking libxml/xpathInternals.h usability... yes
checking libxml/xpathInternals.h presence... yes
checking for libxml/xpathInternals.h... yes
checking for xmlInitParser in -lxml2... yes
checking for geos-config... /opt/local/bin/geos-config
checking GEOS version... 3.12.2
checking for GEOS_RPATH under MacOS... 
checking geos_c.h usability... yes
checking geos_c.h presence... yes
checking for geos_c.h... yes
checking for initGEOS in -lgeos_c... yes
checking whether make sets $(MAKE)... yes
checking for a thread-safe mkdir -p... /opt/local/bin/gmkdir -p
checking whether NLS is requested... yes
checking for msgfmt... /opt/local/bin/msgfmt
checking for gmsgfmt... /opt/local/bin/msgfmt
checking for xgettext... /opt/local/bin/xgettext
checking for msgmerge... (cached) /opt/local/bin/msgmerge
checking for ld... /opt/local/bin/ld
checking if the linker (/opt/local/bin/ld) is GNU ld... no
checking for shared library run path origin... done
checking 32-bit host C ABI... yes
checking for ELF binary format... no
checking for the common suffixes of directories in the library search path... lib,lib,lib
checking for CFPreferencesCopyAppValue... yes
checking for CFLocaleCopyPreferredLanguages... yes
checking for GNU gettext in libc... no
checking for iconv... yes
checking for working iconv... yes
checking how to link with libiconv... -liconv
checking for GNU gettext in libintl... yes
checking whether to use NLS... yes
checking where the gettext function comes from... external libintl
checking how to link with libintl... -lintl -Wl,-framework -Wl,CoreFoundation
checking for PROJ... yes
Package proj was not found in the pkg-config search path.
Perhaps you should add the directory containing `proj.pc'
to the PKG_CONFIG_PATH environment variable
No package 'proj' found
checking for PROJ_RPATH under MacOS... /opt/local/lib/proj9/lib
checking proj_api.h usability... no
checking proj_api.h presence... no
checking for proj_api.h... no
checking proj.h usability... yes
checking proj.h presence... yes
checking for proj.h... yes
checking for proj.h... (cached) yes
checking for pj_get_release in -lproj... no
checking for proj_info in -lproj... yes
checking for JSONC... yes
checking for PROTOBUFC... yes
checking protobuf-c/protobuf-c.h usability... yes
checking protobuf-c/protobuf-c.h presence... yes
checking for protobuf-c/protobuf-c.h... yes
checking for protobuf_c_message_init in -lprotobuf-c... yes
checking for protobuf_c_version in -lprotobuf-c... yes
checking protobuf-c version... 1004001
checking for protoc-c... /opt/local/bin/protoc-c
checking if ccache /opt/local/bin/gcc-mp-14 supports -Wall... yes
phony-revision: 
ADDRESS_STANDARDIZER support: disabled
TOPOLOGY: Topology support requested
RASTER: Raster support requested
checking GDAL version... 3.9.1
checking for OGR enabled... yes
checking gdal.h usability... yes
checking gdal.h presence... yes
checking for gdal.h... yes
checking ogr_api.h usability... yes
checking ogr_api.h presence... yes
checking for ogr_api.h... yes
checking cpl_conv.h usability... yes
checking cpl_conv.h presence... yes
checking for cpl_conv.h... yes
checking for library containing GDALAllRegister... none required
checking for library containing OGRRegisterAll... none required
checking whether we are using the GNU C++ compiler... yes
checking whether /usr/bin/gcc-4.2 -std=gnu99 accepts -g... yes
checking how to run the C++ preprocessor... /usr/bin/gcc-4.2 -std=gnu99 -E
checking for ld used by /usr/bin/gcc-4.2 -std=gnu99... /opt/local/bin/ld
checking if the linker (/opt/local/bin/ld) is GNU ld... no
checking whether the /usr/bin/gcc-4.2 -std=gnu99 linker (/opt/local/bin/ld) supports shared libraries... yes
checking for /usr/bin/gcc-4.2 -std=gnu99 option to produce PIC... -fno-common -DPIC
checking if /usr/bin/gcc-4.2 -std=gnu99 PIC flag -fno-common -DPIC works... yes
checking if /usr/bin/gcc-4.2 -std=gnu99 static flag -static works... no
checking if /usr/bin/gcc-4.2 -std=gnu99 supports -c -o file.o... yes
checking if /usr/bin/gcc-4.2 -std=gnu99 supports -c -o file.o... (cached) yes
checking whether the /usr/bin/gcc-4.2 -std=gnu99 linker (/opt/local/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... darwin10.0.0d2 dyld
checking how to hardcode library paths into programs... immediate
checking whether /usr/bin/gcc-4.2 -std=gnu99 supports C++11 features with -std=c++11... no
checking whether /usr/bin/gcc-4.2 -std=gnu99 supports C++11 features with +std=c++11... no
checking whether /usr/bin/gcc-4.2 -std=gnu99 supports C++11 features with -h std=c++11... no
checking whether /usr/bin/gcc-4.2 -std=gnu99 supports C++11 features with -std=c++0x... no
checking whether /usr/bin/gcc-4.2 -std=gnu99 supports C++11 features with +std=c++0x... no
checking whether /usr/bin/gcc-4.2 -std=gnu99 supports C++11 features with -h std=c++0x... no
configure: error: *** A compiler with support for C++11 language features is required.
Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_databases_postgis3/pg16-postgis3/work/postgis-3.4.2" && ./configure --prefix=/opt/local --without-address-standardizer --with-raster --without-sfcgal --with-topology --libdir=/opt/local/lib/postgresql16 --bindir=/opt/local/lib/postgresql16/bin --with-pgconfig=/opt/local/lib/postgresql16/bin/pg_config PROJ_CFLAGS=-I/opt/local/lib/proj9/include PROJ_LIBS="-L/opt/local/lib/proj9/lib -lproj" --with-gdalconfig=/opt/local/bin/gdal-config 
Exit code: 1

compiler.thread_local_storage yes should ensure Xcode gcc is avoided, but it is not.

Also, C++11 must explicitly be set, otherwise needed flags are not added.

Change History (1)

comment:1 in reply to:  description Changed 3 months ago by ryandesign (Ryan Carsten Schmidt)

Replying to barracuda156:

We have the same issue which we had with pdal:

Which issue was that?

compiler.thread_local_storage yes should ensure Xcode gcc is avoided, but it is not.

checking for gcc... ccache /opt/local/bin/gcc-mp-14

compiler.thread_local_storage yes has successfully caused MacPorts to select the newer gcc14 compiler.

checking for xcrun... /usr/bin/xcrun
xcrun: error: unrecognized option: --show-sdk-version

usage: 
xcrun [-verbose] [-no-cache] [-sdk <sdkroot>] [-log] [-run] <utility> [argument ...]
xcrun [-verbose] [-no-cache] [-sdk <sdkroot>] -find <utility> 
<tool> [tool arguments ...]
./configure: line 15491: test: =: unary operator expected

Here it wasn't expecting a version of xcrun as old as you have. Not sure what effect that will have on the build though I expect it only to affect SDK selection, not compiler selection.

checking whether we are using the GNU C++ compiler... yes
checking whether /usr/bin/gcc-4.2 -std=gnu99 accepts -g... yes
checking how to run the C++ preprocessor... /usr/bin/gcc-4.2 -std=gnu99 -E
checking for ld used by /usr/bin/gcc-4.2 -std=gnu99... /opt/local/bin/ld
checking if the linker (/opt/local/bin/ld) is GNU ld... no
checking whether the /usr/bin/gcc-4.2 -std=gnu99 linker (/opt/local/bin/ld) supports shared libraries... yes
checking for /usr/bin/gcc-4.2 -std=gnu99 option to produce PIC... -fno-common -DPIC
checking if /usr/bin/gcc-4.2 -std=gnu99 PIC flag -fno-common -DPIC works... yes
checking if /usr/bin/gcc-4.2 -std=gnu99 static flag -static works... no
checking if /usr/bin/gcc-4.2 -std=gnu99 supports -c -o file.o... yes
checking if /usr/bin/gcc-4.2 -std=gnu99 supports -c -o file.o... (cached) yes
checking whether the /usr/bin/gcc-4.2 -std=gnu99 linker (/opt/local/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... darwin10.0.0d2 dyld
checking how to hardcode library paths into programs... immediate
checking whether /usr/bin/gcc-4.2 -std=gnu99 supports C++11 features with -std=c++11... no
checking whether /usr/bin/gcc-4.2 -std=gnu99 supports C++11 features with +std=c++11... no
checking whether /usr/bin/gcc-4.2 -std=gnu99 supports C++11 features with -h std=c++11... no
checking whether /usr/bin/gcc-4.2 -std=gnu99 supports C++11 features with -std=c++0x... no
checking whether /usr/bin/gcc-4.2 -std=gnu99 supports C++11 features with +std=c++0x... no
checking whether /usr/bin/gcc-4.2 -std=gnu99 supports C++11 features with -h std=c++0x... no
configure: error: *** A compiler with support for C++11 language features is required.

Here something has gone wrong and it is not using the compiler MacPorts is telling it to use.

Also, C++11 must explicitly be set, otherwise needed flags are not added.

According to #67476 it needs C++14.

Note: See TracTickets for help on using tickets.