Hi,
I am porting our pkgsrc setup to Ubuntu 20. One of the things that does not compile out of the box is pkgtools/pkg_install.
The following error is generated:
checking whether the C compiler works... no
configure: error: in `/var/tmp/pkgsrc-obj/pkgtools/pkg_install/work/libnbcompat': configure: error: C compiler cannot create executables See `config.log' for more details *** Error code 77 Stop. bmake[1]: stopped in /usr/pkgsrc/pkgtools/pkg_install *** Error code 1
Diving into the config log:
configure:3047: checking whether the C compiler works
configure:3069: cc -O2 -D_FORTIFY_SOURCE=2 -I/usr/local/pkg/include -D_LARGEFILE_SOURCE -D_LARGE_FILES -D_FILE_OFFSET_BITS=64 -DDEF_UMASK=022 -I/var/tmp/pkgsrc-obj/pkgtools/pkg_install/work/bzip2 -I/var/tmp/pkgs rc-obj/pkgtools/pkg_install/work/zlib -I/var/tmp/pkgsrc-obj/pkgtools/pkg_install/work/libarchive/libarchive -I/var/tmp/pkgsrc-obj/pkgtools/pkg_install/work/libfetch -I/var/tmp/pkgsrc-obj/pkgtools/pkg_install/wor k -DHAVE_NBCOMPAT_H=1 -I/var/tmp/pkgsrc-obj/pkgtools/pkg_install/work/libnbcompat -I/usr/local/pkg/include -Wl,-z,relro -Wl,-z,now -lssl -lcrypto -L/var/tmp/pkgsrc-obj/pkgtools/pkg_install/work/bzip2 -L/var/tmp/ pkgsrc-obj/pkgtools/pkg_install/work/zlib -L/var/tmp/pkgsrc-obj/pkgtools/pkg_install/work/libarchive/.libs -L/var/tmp/pkgsrc-obj/pkgtools/pkg_install/work/libfetch -L/var/tmp/pkgsrc-obj/pkgtools/pkg_install/work /netpgp -L/var/tmp/pkgsrc-obj/pkgtools/pkg_install/work/libnbcompat -L/usr/local/pkg/lib -Wl,-R/usr/local/pkg/lib conftest.c >&5 /tmp/cc9uaWwA.s: Assembler messages: /tmp/cc9uaWwA.s:10: Error: no such instruction: `endbr64' configure:3073: $? = 1 configure:3111: result: no configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "libnbcompat" | #define PACKAGE_TARNAME "libnbcompat" | #define PACKAGE_VERSION "20150419" | #define PACKAGE_STRING "libnbcompat 20150419" | #define PACKAGE_BUGREPORT "joerg%NetBSD.org@localhost" | #define PACKAGE_URL "" | /* end confdefs.h. */ | | int | main () | { | | ; | return 0; | } configure:3116: error: in `/var/tmp/pkgsrc-obj/pkgtools/pkg_install/work/libnbcompat': configure:3118: error: C compiler cannot create executables See `config.log' for more details looking into the Makefile you see the following: # These are needed to solve a chicken-and-egg problem where pkgsrc uses
# newer features of pkg_install, but older NetBSD installations won't
# support them. In this case, we explicitly use the native GCC
# compiler to avoid problems with depending on pkgsrc GCC for building
# pkg_install.
#
# We also use the newly built pkg_{add,create,delete} since upgrading
# from an older pkg_install might required features of the new
# program, provided that we are not cross-compiling. (XXX If we are
# cross-compiling, we should maybe have a host build dependency on
# ourselves...)
#
# Note that the definitions are only overriden for the phases that are
# supposed to use them. pkg_admin pmatch might be used when looking for
# dependencies. If that is ever changed in a incompatible way, this has to
# be rethought.
USE_NATIVE_GCC= yes
Removing it will make the package compile on Ubuntu 20.
Beside the actual gcc-9 issue, the other question is, why the native compiler is used by
default and not only on older NetBSD where the issue might occur?
I would expect pkgsrc to avoid using system compilers by default, especially when `PREFER_PKGSRC=yes` option
is used.
Thanks,
Shay
|