Opened 20 months ago

Last modified 20 months ago

#65752 assigned defect

libusb @1.0.26: error: compiler with C11 support is required to build libusb

Reported by: barracuda156 Owned by: michaelld (Michael Dickens)
Priority: Normal Milestone:
Component: ports Version: 2.7.2
Keywords: Cc:
Port: libusb

Description

Despite the requirement of C++11, clang-3.4 is tried on 10.6.8 Intel, and fails:

version:1
:debug:clean Starting logging for libusb @1.0.26_0
:debug:sysinfo Mac OS X 10.6.8 (darwin/10.8.0) arch i386
:debug:sysinfo MacPorts 2.7.2
:debug:sysinfo Xcode 3.2.6
:debug:sysinfo SDK 10.6
:debug:sysinfo MACOSX_DEPLOYMENT_TARGET: 10.6
:debug:clean Attempting ln -sf /opt/x86_64/var/macports/build/_opt_x86_64_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libusb/libusb/work /opt/x86_64/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/devel/libusb/work
:debug:clean dropping privileges: euid changed to 502, egid changed to 505.
:debug:main Executing org.macports.main (libusb)
:debug:main Privilege de-escalation not attempted as not running as root.
:debug:archivefetch archivefetch phase started at Fri Sep  2 02:08:57 ICT 2022
:debug:archivefetch Executing org.macports.archivefetch (libusb)
:debug:archivefetch Privilege de-escalation not attempted as not running as root.
:debug:fetch fetch phase started at Fri Sep  2 02:08:57 ICT 2022
:notice:fetch --->  Fetching distfiles for libusb
:debug:fetch elevating privileges for fetch: euid changed to 0, egid changed to 0.
:debug:fetch dropping privileges: euid changed to 502, egid changed to 505.
:debug:fetch Executing org.macports.fetch (libusb)
:info:fetch --->  libusb-1.0.26.tar.gz does not exist in /opt/x86_64/var/macports/distfiles/libusb
:notice:fetch --->  Attempting to fetch libusb-1.0.26.tar.gz from http://distfiles.macports.org/libusb
:debug:fetch Privilege de-escalation not attempted as not running as root.
:debug:checksum checksum phase started at Fri Sep  2 02:08:59 ICT 2022
:notice:checksum --->  Verifying checksums for libusb
:debug:checksum Executing org.macports.checksum (libusb)
:info:checksum --->  Checksumming libusb-1.0.26.tar.gz
:debug:checksum Calculated (rmd160) is daf04e6a17af01ae460c004c4ef1a272a49ea9e0
:debug:checksum Correct (rmd160) checksum for libusb-1.0.26.tar.gz
:debug:checksum Calculated (sha256) is 6e5fd904275b12ba5e9fcd4ffb1366028f410e632401dfb11703123a5cc2a1f2
:debug:checksum Correct (sha256) checksum for libusb-1.0.26.tar.gz
:debug:checksum Calculated (size) is 383960
:debug:checksum Correct (size) checksum for libusb-1.0.26.tar.gz
:debug:checksum Privilege de-escalation not attempted as not running as root.
:debug:extract extract phase started at Fri Sep  2 02:08:59 ICT 2022
:notice:extract --->  Extracting libusb
:debug:extract Executing org.macports.extract (libusb)
:info:extract --->  Extracting libusb-1.0.26.tar.gz
:debug:extract setting option extract.args to '/opt/x86_64/var/macports/distfiles/libusb/libusb-1.0.26.tar.gz'
:debug:extract Environment: 
:debug:extract CC_PRINT_OPTIONS='YES'
:debug:extract CC_PRINT_OPTIONS_FILE='/opt/x86_64/var/macports/build/_opt_x86_64_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libusb/libusb/work/.CC_PRINT_OPTIONS'
:debug:extract CPATH='/opt/x86_64/include'
:debug:extract CPLUS_INCLUDE_PATH='/opt/x86_64/include/LegacySupport'
:debug:extract C_INCLUDE_PATH='/opt/x86_64/include/LegacySupport'
:debug:extract DEVELOPER_DIR='/Developer'
:debug:extract LIBRARY_PATH='/opt/x86_64/lib'
:debug:extract MACOSX_DEPLOYMENT_TARGET='10.6'
:debug:extract MACPORTS_LEGACY_SUPPORT_CPPFLAGS='-isystem/opt/x86_64/include/LegacySupport'
:debug:extract MACPORTS_LEGACY_SUPPORT_ENABLED='1'
:debug:extract MACPORTS_LEGACY_SUPPORT_LDFLAGS='-L/opt/x86_64/lib -lMacportsLegacySupport'
:debug:extract OBJCPLUS_INCLUDE_PATH='/opt/x86_64/include/LegacySupport'
:debug:extract OBJC_INCLUDE_PATH='/opt/x86_64/include/LegacySupport'
:info:extract Executing:  cd "/opt/x86_64/var/macports/build/_opt_x86_64_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libusb/libusb/work" && /usr/bin/gzip -dc '/opt/x86_64/var/macports/distfiles/libusb/libusb-1.0.26.tar.gz' | /usr/bin/gnutar --no-same-owner -xf - 
:debug:extract system:  cd "/opt/x86_64/var/macports/build/_opt_x86_64_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libusb/libusb/work" && /usr/bin/gzip -dc '/opt/x86_64/var/macports/distfiles/libusb/libusb-1.0.26.tar.gz' | /usr/bin/gnutar --no-same-owner -xf - 
:debug:extract euid/egid changed to: 0/0
:debug:extract chowned /opt/x86_64/var/macports/build/_opt_x86_64_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libusb/libusb/work to macports
:debug:extract euid/egid changed to: 502/505
:debug:extract Symlink: /opt/x86_64/var/macports/build/_opt_x86_64_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libusb/libusb/work/libusb-1.0.26 -> libusb-libusb-4239bc3
:debug:extract Executing proc-post-org.macports.extract-extract-0
:debug:extract Privilege de-escalation not attempted as not running as root.
:debug:patch patch phase started at Fri Sep  2 02:08:59 ICT 2022
:debug:patch Executing org.macports.patch (libusb)
:debug:patch Privilege de-escalation not attempted as not running as root.
:debug:configure configure phase started at Fri Sep  2 02:09:00 ICT 2022
:notice:configure --->  Configuring libusb
:debug:configure Preferred compilers: macports-clang-3.4 macports-gcc-12 macports-gcc-11 macports-gcc-10 macports-gcc-9 macports-gcc-8 macports-gcc-7 macports-gcc-6 macports-gcc-5
:debug:configure Using compiler 'MacPorts Clang 3.4'
:debug:configure Executing org.macports.configure (libusb)
:debug:configure Environment: 
:debug:configure CC='/opt/x86_64/bin/clang-mp-3.4'
:debug:configure CC_PRINT_OPTIONS='YES'
:debug:configure CC_PRINT_OPTIONS_FILE='/opt/x86_64/var/macports/build/_opt_x86_64_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libusb/libusb/work/.CC_PRINT_OPTIONS'
:debug:configure CFLAGS='-pipe -Os -arch x86_64'
:debug:configure CPATH='/opt/x86_64/include'
:debug:configure CPLUS_INCLUDE_PATH='/opt/x86_64/include/LegacySupport'
:debug:configure CPPFLAGS='-isystem/opt/x86_64/include/LegacySupport -I/opt/x86_64/include'
:debug:configure CXX='/opt/x86_64/bin/clang++-mp-3.4'
:debug:configure CXXFLAGS='-pipe -Os -stdlib=libstdc++ -arch x86_64'
:debug:configure C_INCLUDE_PATH='/opt/x86_64/include/LegacySupport'
:debug:configure DEVELOPER_DIR='/Developer'
:debug:configure F90FLAGS='-pipe -Os -m64'
:debug:configure FCFLAGS='-pipe -Os -m64'
:debug:configure FFLAGS='-pipe -Os -m64'
:debug:configure INSTALL='/usr/bin/install -c'
:debug:configure LDFLAGS='-Wl,-headerpad_max_install_names -L/opt/x86_64/lib -lMacportsLegacySupport -arch x86_64'
:debug:configure LIBRARY_PATH='/opt/x86_64/lib'
:debug:configure MACOSX_DEPLOYMENT_TARGET='10.6'
:debug:configure MACPORTS_LEGACY_SUPPORT_CPPFLAGS='-isystem/opt/x86_64/include/LegacySupport'
:debug:configure MACPORTS_LEGACY_SUPPORT_ENABLED='1'
:debug:configure MACPORTS_LEGACY_SUPPORT_LDFLAGS='-L/opt/x86_64/lib -lMacportsLegacySupport'
:debug:configure OBJC='/opt/x86_64/bin/clang-mp-3.4'
:debug:configure OBJCFLAGS='-pipe -Os -arch x86_64'
:debug:configure OBJCPLUS_INCLUDE_PATH='/opt/x86_64/include/LegacySupport'
:debug:configure OBJCXX='/opt/x86_64/bin/clang++-mp-3.4'
:debug:configure OBJCXXFLAGS='-pipe -Os -stdlib=libstdc++ -arch x86_64'
:debug:configure OBJC_INCLUDE_PATH='/opt/x86_64/include/LegacySupport'
:info:configure Executing:  cd "/opt/x86_64/var/macports/build/_opt_x86_64_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libusb/libusb/work/libusb-1.0.26" && ./autogen.sh --prefix=/opt/x86_64 
:debug:configure system:  cd "/opt/x86_64/var/macports/build/_opt_x86_64_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libusb/libusb/work/libusb-1.0.26" && ./autogen.sh --prefix=/opt/x86_64 
:info:configure autoreconf: export WARNINGS=
:info:configure autoreconf: Entering directory '.'
:info:configure autoreconf: configure.ac: not using Gettext
:info:configure autoreconf: running: /opt/x86_64/bin/aclocal --force -I m4
:info:configure autoreconf: configure.ac: tracing
:info:configure autoreconf: running: /opt/x86_64/bin/glibtoolize --copy --force
:info:configure glibtoolize: putting auxiliary files in '.'.
:info:configure glibtoolize: copying file './ltmain.sh'
:info:configure glibtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
:info:configure glibtoolize: copying file 'm4/libtool.m4'
:info:configure glibtoolize: copying file 'm4/ltoptions.m4'
:info:configure glibtoolize: copying file 'm4/ltsugar.m4'
:info:configure glibtoolize: copying file 'm4/ltversion.m4'
:info:configure glibtoolize: copying file 'm4/lt~obsolete.m4'
:info:configure autoreconf: configure.ac: not using Intltool
:info:configure autoreconf: configure.ac: not using Gtkdoc
:info:configure autoreconf: running: /opt/x86_64/bin/aclocal --force -I m4
:info:configure autoreconf: running: /opt/x86_64/bin/autoconf --force
:info:configure autoreconf: running: /opt/x86_64/bin/autoheader --force
:info:configure autoreconf: running: /opt/x86_64/bin/automake --add-missing --copy --force-missing
:info:configure configure.ac:23: installing './compile'
:info:configure configure.ac:27: installing './config.guess'
:info:configure configure.ac:27: installing './config.sub'
:info:configure configure.ac:26: installing './install-sh'
:info:configure configure.ac:26: installing './missing'
:info:configure Makefile.am: installing './INSTALL'
:info:configure examples/Makefile.am: installing './depcomp'
:info:configure autoreconf: Leaving directory '.'
:info:configure checking for gcc... /opt/x86_64/bin/clang-mp-3.4
:info:configure checking whether the C compiler works... yes
:info:configure checking for C compiler default output file name... a.out
:info:configure checking for suffix of executables... 
:info:configure checking whether we are cross compiling... no
:info:configure checking for suffix of object files... o
:info:configure checking whether the compiler supports GNU C... yes
:info:configure checking whether /opt/x86_64/bin/clang-mp-3.4 accepts -g... yes
:info:configure checking for /opt/x86_64/bin/clang-mp-3.4 option to enable C11 features... -std=gnu11
:info:configure checking whether /opt/x86_64/bin/clang-mp-3.4 -std=gnu11 understands -c and -o together... yes
:info:configure checking whether the compiler supports GNU C++... yes
:info:configure checking whether /opt/x86_64/bin/clang++-mp-3.4 accepts -g... yes
:info:configure checking for /opt/x86_64/bin/clang++-mp-3.4 option to enable C++11 features... none needed
:info:configure checking for inline... inline
:info:configure checking for a BSD-compatible install... /usr/bin/install -c
:info:configure checking whether build environment is sane... yes
:info:configure checking for a race-free mkdir -p... /opt/x86_64/bin/gmkdir -p
:info:configure checking for gawk... gawk
:info:configure checking whether make sets $(MAKE)... yes
:info:configure checking whether make supports the include directive... yes (GNU style)
:info:configure checking whether make supports nested variables... yes
:info:configure checking dependency style of /opt/x86_64/bin/clang-mp-3.4 -std=gnu11... gcc3
:info:configure checking dependency style of /opt/x86_64/bin/clang++-mp-3.4... gcc3
:info:configure checking build system type... x86_64-apple-darwin10.8.0
:info:configure checking host system type... x86_64-apple-darwin10.8.0
:info:configure checking how to print strings... printf
:info:configure checking for a sed that does not truncate output... /opt/x86_64/bin/gsed
:info:configure checking for grep that handles long lines and -e... /opt/x86_64/bin/ggrep
:info:configure checking for egrep... /opt/x86_64/bin/ggrep -E
:info:configure checking for fgrep... /opt/x86_64/bin/ggrep -F
:info:configure checking for ld used by /opt/x86_64/bin/clang-mp-3.4 -std=gnu11... /opt/x86_64/libexec/llvm-3.4/bin/ld
:info:configure checking if the linker (/opt/x86_64/libexec/llvm-3.4/bin/ld) is GNU ld... no
:info:configure checking for BSD- or MS-compatible name lister (nm)... /opt/x86_64/bin/nm
:info:configure checking the name lister (/opt/x86_64/bin/nm) interface... BSD nm
:info:configure checking whether ln -s works... yes
:info:configure checking the maximum length of command line arguments... 196608
:info:configure checking how to convert x86_64-apple-darwin10.8.0 file names to x86_64-apple-darwin10.8.0 format... func_convert_file_noop
:info:configure checking how to convert x86_64-apple-darwin10.8.0 file names to toolchain format... func_convert_file_noop
:info:configure checking for /opt/x86_64/libexec/llvm-3.4/bin/ld option to reload object files... -r
:info:configure checking for file... file
:info:configure checking for objdump... no
:info:configure checking how to recognize dependent libraries... pass_all
:info:configure checking for dlltool... no
:info:configure checking how to associate runtime and link libraries... printf %s\n
:info:configure checking for ar... ar
:info:configure checking for archiver @FILE support... no
:info:configure checking for strip... strip
:info:configure checking for ranlib... ranlib
:info:configure checking command to parse /opt/x86_64/bin/nm output from /opt/x86_64/bin/clang-mp-3.4 -std=gnu11 object... ok
:info:configure checking for sysroot... no
:info:configure checking for a working dd... /bin/dd
:info:configure checking how to truncate binary pipes... /bin/dd bs=4096 count=1
:info:configure checking for mt... no
:info:configure checking if : is a manifest tool... no
:info:configure checking for dsymutil... dsymutil
:info:configure checking for nmedit... nmedit
:info:configure checking for lipo... lipo
:info:configure checking for otool... otool
:info:configure checking for otool64... no
:info:configure checking for -single_module linker flag... yes
:info:configure checking for -exported_symbols_list linker flag... yes
:info:configure checking for -force_load linker flag... yes
:info:configure checking for stdio.h... yes
:info:configure checking for stdlib.h... yes
:info:configure checking for string.h... yes
:info:configure checking for inttypes.h... yes
:info:configure checking for stdint.h... yes
:info:configure checking for strings.h... yes
:info:configure checking for sys/stat.h... yes
:info:configure checking for sys/types.h... yes
:info:configure checking for unistd.h... yes
:info:configure checking for dlfcn.h... yes
:info:configure checking for objdir... .libs
:info:configure checking if /opt/x86_64/bin/clang-mp-3.4 -std=gnu11 supports -fno-rtti -fno-exceptions... yes
:info:configure checking for /opt/x86_64/bin/clang-mp-3.4 -std=gnu11 option to produce PIC... -fno-common -DPIC
:info:configure checking if /opt/x86_64/bin/clang-mp-3.4 -std=gnu11 PIC flag -fno-common -DPIC works... yes
:info:configure checking if /opt/x86_64/bin/clang-mp-3.4 -std=gnu11 static flag -static works... no
:info:configure checking if /opt/x86_64/bin/clang-mp-3.4 -std=gnu11 supports -c -o file.o... yes
:info:configure checking if /opt/x86_64/bin/clang-mp-3.4 -std=gnu11 supports -c -o file.o... (cached) yes
:info:configure checking whether the /opt/x86_64/bin/clang-mp-3.4 -std=gnu11 linker (/opt/x86_64/libexec/llvm-3.4/bin/ld) supports shared libraries... yes
:info:configure checking dynamic linker characteristics... darwin10.8.0 dyld
:info:configure checking how to hardcode library paths into programs... immediate
:info:configure checking whether stripping libraries is possible... yes
:info:configure checking if libtool supports shared libraries... yes
:info:configure checking whether to build shared libraries... yes
:info:configure checking whether to build static libraries... yes
:info:configure checking how to run the C++ preprocessor... /opt/x86_64/bin/clang++-mp-3.4 -E
:info:configure checking for ld used by /opt/x86_64/bin/clang++-mp-3.4... /opt/x86_64/libexec/llvm-3.4/bin/ld
:info:configure checking if the linker (/opt/x86_64/libexec/llvm-3.4/bin/ld) is GNU ld... no
:info:configure checking whether the /opt/x86_64/bin/clang++-mp-3.4 linker (/opt/x86_64/libexec/llvm-3.4/bin/ld) supports shared libraries... yes
:info:configure checking for /opt/x86_64/bin/clang++-mp-3.4 option to produce PIC... -fno-common -DPIC
:info:configure checking if /opt/x86_64/bin/clang++-mp-3.4 PIC flag -fno-common -DPIC works... yes
:info:configure checking if /opt/x86_64/bin/clang++-mp-3.4 static flag -static works... no
:info:configure checking if /opt/x86_64/bin/clang++-mp-3.4 supports -c -o file.o... yes
:info:configure checking if /opt/x86_64/bin/clang++-mp-3.4 supports -c -o file.o... (cached) yes
:info:configure checking whether the /opt/x86_64/bin/clang++-mp-3.4 linker (/opt/x86_64/libexec/llvm-3.4/bin/ld) supports shared libraries... yes
:info:configure checking dynamic linker characteristics... darwin10.8.0 dyld
:info:configure checking how to hardcode library paths into programs... immediate
:info:configure checking for windres... no
:info:configure checking whether make supports nested variables... (cached) yes
:info:configure checking if /opt/x86_64/bin/clang-mp-3.4 -std=gnu11 supports -std=gnu11... no
:info:configure checking if /opt/x86_64/bin/clang-mp-3.4 -std=gnu11 supports -std=c11... no
:info:configure configure: error: compiler with C11 support is required to build libusb
:info:configure Command failed:  cd "/opt/x86_64/var/macports/build/_opt_x86_64_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libusb/libusb/work/libusb-1.0.26" && ./autogen.sh --prefix=/opt/x86_64 
:info:configure Exit code: 1
:error:configure Failed to configure libusb: consult /opt/x86_64/var/macports/build/_opt_x86_64_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libusb/libusb/work/libusb-1.0.26/config.log
:error:configure Failed to configure libusb: configure failure: command execution failed
:debug:configure Error code: NONE
:debug:configure Backtrace: configure failure: command execution failed
:debug:configure     while executing
:debug:configure "$procedure $targetname"
:error:configure See /opt/x86_64/var/macports/logs/_opt_x86_64_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libusb/libusb/main.log for details.

Change History (5)

comment:1 Changed 20 months ago by kencu (Ken)

clang-3.4 supports c++11.

comment:2 Changed 20 months ago by kencu (Ken)

it looks like it failed when testing for C11; you'd have to check here to see what actually happened.

Failed to configure libusb: consult /opt/x86_64/var/macports/build/_opt_x86_64_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libusb/libusb/work/libusb-1.0.26/config.log

comment:3 Changed 20 months ago by ryandesign (Ryan Carsten Schmidt)

Summary: libusb: blacklist old Macports clanglibusb @1.0.26: error: compiler with C11 support is required to build libusb

comment:4 Changed 20 months ago by kencu (Ken)

clang-3.4's support for C11 is documented here: https://clang.llvm.org/c_status.html#c11

comment:5 Changed 20 months ago by ryandesign (Ryan Carsten Schmidt)

Different C11 features were added to clang in different versions. When you tell MacPorts you want C11, it requires a version of clang that supports most C11 features (Apple clang ≥ 500 or open source clang ≥ 3.3), but in particular these minimum versions do not support stdatomic.h, which libusb uses. We could change MacPorts base so that requiring C11 guarantees the presence of stdatomic.h, but that would mean that many ports that use other C11 features but not stdatomic.h would bring in dependencies on newer compilers that are unnecessary. I can't say whether we should do that, but so far we haven't, and instead we've had each port that needs stdatomic.h add an additional compiler.blacklist for this such as this commit for libusb. We determined that stdatomic.h support was added to Apple clang in version 700. But I think it didn't appear in open source clang until 3.5.2-rc1 (based on the list of git tags associated with this commit that added stdatomic.h to llvm), so we need to blacklist clang-3.3 and clang-3.4 as well—not just in libusb, but also in all other ports that blacklist Apple clang < 700 for this reason. (Usually the port will include a comment line above the compiler.blacklist line citing the reason for the blacklist.)

Note: See TracTickets for help on using tickets.