pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: pkgtools/pkg_install does not compile with gcc-9 (Ubutnu 20)

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

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_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.

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.


Home | Main Index | Thread Index | Old Index