ports/lang/gcc14/files/patch-libsanitizer_asan_asan__linux.cpp
Lorenzo Salvadore 4700c3f178
lang/gcc14: Add port
GCC, the GNU Compiler Collection, supports a number of languages.
This port installs the C, C++, and Fortran front ends as gcc14,
g++14, and gfortran14, respectively.

This is the first release from the GCC 14 series.
It largely is a copy of lang/gcc14-devel, with release-specific
modifications from lang/gcc13.

Common issues that could happen when porting code to GCC 14:
https://gcc.gnu.org/gcc-14/porting_to.html

Changes: https://gcc.gnu.org/gcc-14/changes.html
2024-06-20 14:33:31 +02:00

23 lines
741 B
C++

Since the vDSO shared librares on Linux and FreeBSD are called
differently, the initialization order check fails on FreeBSD.
This patch fixes it by ignoring [vdso] instead of linux-vdso.so.
GCC gets the original file from the LLVM Project, so this patch should
probably be upstreamed directly to the LLVM Project rather than to GCC.
--- libsanitizer/asan/asan_linux.cpp.orig 2022-11-23 11:22:41 UTC
+++ libsanitizer/asan/asan_linux.cpp
@@ -148,6 +148,12 @@ static int FindFirstDSOCallback(struct dl_phdr_info *i
return 0;
# endif
+# if SANITIZER_FREEBSD
+ // Ignore vDSO
+ if (internal_strncmp(info->dlpi_name, "[vdso]", sizeof("[vdso]") - 1) == 0)
+ return 0;
+# endif
+
*name = info->dlpi_name;
return 1;
}