pkgsrc-Users archive

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

Re: lang/gcc10 is missing libasan because patches not ported forward



On Fri 16 Dec 2022 at 14:41:31 +0100, Rhialto wrote:
> Howwver. lang/gcc10 (at least my build of it) is missing at least the
> actual libasan files. I'm presuming that those should be part of the
> package. Unfortunately, lang/gcc10 uses a dymaic PLIST so it was not
> detected that the files were missing.

It's missing libasan and libubsan, compared to gcc8. This from the
configure output probably is a hint:

checking for libsanitizer support... no
...
The following languages will be built: c,c++,fortran,lto,objc,obj-c++
*** This configuration is not supported in the following subdirectories:
     zlib target-libsanitizer target-libvtv gnattools gotools target-libada target-libhsail-rt target-libphobos target-zlib target-libgo target-libffi target-liboffloadmic target-libssp
    (Any other directories should still work fine.)

The configure script determines libsanitizer support by running
libsanitizer/configure.tgt which is basically a check on the ${target}
triple.

So I checked for patches for that in gcc8 which were absent in gcc10:

- patch-libsanitizer_configure.tgt
- patch-libsanitizer_sanitizer__common_Makefile.am
- patch-libsanitizer_sanitizer__common_Makefile.in

So I adjusted maya@'s patches from gcc 8 to gcc 10 and rebuilt.
gcc9 is also lacking these patches. gcc 12 possibly also needs them.

What's also missing are the patches for precompiled headers. The last
version that includes them seems to be gcc 7. I seem to remember
proposing to commit adjusted versions to gcc 8 but never got a response
on that.

The Makefile for gcc10 says

## When bumping the PKGREVISION of this package the PKGREVISION of
## lang/gcc10-libs needs to be bumped to be at least 1 more than the
## PKGREVISION of this package!

Wouldn't it make sense to bump the PKGREVISION of gcc10-libs to at least
10, so that bumps on gcc10 itself don't need a bump on gcc10-libs for a
while?

Anyway, the build failed because of something in
gcc-10.4.0/libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.cpp
which is apparently included from upstream but not used without these
patches?

../../../../gcc-10.4.0/libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.cpp:2182:36: error: 'MD5_CTX' was not declared in this scope; did you mean 'MD4_CTX'?
 2182 | const unsigned MD5_CTX_sz = sizeof(MD5_CTX);
      |                                    ^~~~~~~
      |                                    MD4_CTX
../../../../gcc-10.4.0/libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.cpp:2183:36: error: 'MD5_DIGEST_STRING_LENGTH' was not declared in this scope; did you mean 'MD2_DIGEST_STRING_LENGTH'?
 2183 | const unsigned MD5_return_length = MD5_DIGEST_STRING_LENGTH;
      |                                    ^~~~~~~~~~~~~~~~~~~~~~~~
      |                                    MD2_DIGEST_STRING_LENGTH
none needed

The patches as adjusted so far:

$NetBSD: patch-libsanitizer_configure.tgt,v 1.1 2018/05/05 04:08:36 maya Exp $

--- libsanitizer/configure.tgt.orig	2022-06-28 08:54:31.000000000 +0000
+++ libsanitizer/configure.tgt
@@ -68,6 +68,10 @@ case "${target}" in
 	;;
   riscv64-*-linux*)
 	;;
+  x86_64-*-netbsd*)
+	TSAN_SUPPORTED=no
+	LSAN_SUPPORTED=no
+	;;
   *)
 	UNSUPPORTED=1
 	;;


$NetBSD: patch-libsanitizer_sanitizer__common_Makefile.am,v 1.1 2018/05/05 04:08:36 maya Exp $

--- libsanitizer/sanitizer_common/Makefile.am.orig	2022-06-28 08:54:31.000000000 +0000
+++ libsanitizer/sanitizer_common/Makefile.am
@@ -45,6 +45,7 @@ sanitizer_common_files = \
 	sanitizer_openbsd.cpp \
 	sanitizer_persistent_allocator.cpp \
 	sanitizer_platform_limits_linux.cpp \
+	sanitizer_platform_limits_netbsd.cpp \
 	sanitizer_platform_limits_openbsd.cpp \
 	sanitizer_platform_limits_posix.cpp \
 	sanitizer_platform_limits_solaris.cpp \

$NetBSD: patch-libsanitizer_sanitizer__common_Makefile.in,v 1.1 2018/05/05 04:08:36 maya Exp $

--- libsanitizer/sanitizer_common/Makefile.in.orig	2022-06-28 08:55:09.000000000 +0000
+++ libsanitizer/sanitizer_common/Makefile.in
@@ -131,6 +131,7 @@ am__objects_1 = sancov_flags.lo sanitize
 	sanitizer_mac.lo sanitizer_mac_libcdep.lo sanitizer_netbsd.lo \
 	sanitizer_openbsd.lo sanitizer_persistent_allocator.lo \
 	sanitizer_platform_limits_linux.lo \
+	sanitizer_platform_limits_netbsd.lo \
 	sanitizer_platform_limits_openbsd.lo \
 	sanitizer_platform_limits_posix.lo \
 	sanitizer_platform_limits_solaris.lo sanitizer_posix.lo \
@@ -402,6 +403,7 @@ sanitizer_common_files = \
 	sanitizer_openbsd.cpp \
 	sanitizer_persistent_allocator.cpp \
 	sanitizer_platform_limits_linux.cpp \
+	sanitizer_platform_limits_netbsd.cpp \
 	sanitizer_platform_limits_openbsd.cpp \
 	sanitizer_platform_limits_posix.cpp \
 	sanitizer_platform_limits_solaris.cpp \
@@ -558,6 +560,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_openbsd.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_persistent_allocator.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_platform_limits_linux.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_platform_limits_netbsd.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_platform_limits_openbsd.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_platform_limits_posix.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_platform_limits_solaris.Plo@am__quote@

-Olaf.
-- 
___ "Buying carbon credits is a bit like a serial killer paying someone else to
\X/  have kids to make his activity cost neutral." -The BOFH    falu.nl@rhialto

Attachment: signature.asc
Description: PGP signature



Home | Main Index | Thread Index | Old Index