diff options
Diffstat (limited to 'meta/recipes-devtools/gcc/gcc-sanitizers.inc')
-rw-r--r-- | meta/recipes-devtools/gcc/gcc-sanitizers.inc | 83 |
1 files changed, 46 insertions, 37 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-sanitizers.inc b/meta/recipes-devtools/gcc/gcc-sanitizers.inc index 9e643ee277..6c81d30243 100644 --- a/meta/recipes-devtools/gcc/gcc-sanitizers.inc +++ b/meta/recipes-devtools/gcc/gcc-sanitizers.inc | |||
@@ -11,6 +11,10 @@ EXTRA_OECONF_PATHS = "\ | |||
11 | --with-build-sysroot=${STAGING_DIR_TARGET} \ | 11 | --with-build-sysroot=${STAGING_DIR_TARGET} \ |
12 | " | 12 | " |
13 | 13 | ||
14 | # Workaround for this issue: https://github.com/llvm/llvm-project/issues/65144 on aarch64 | ||
15 | # compiler-rt/sanitizers/aarch64: CHECK failed: sanitizer_allocator_primary64.h:133 | ||
16 | CXXFLAGS:append:aarch64 = " -DSANITIZER_CAN_USE_ALLOCATOR64=0" | ||
17 | |||
14 | do_configure () { | 18 | do_configure () { |
15 | rm -rf ${B}/${TARGET_SYS}/libsanitizer/ | 19 | rm -rf ${B}/${TARGET_SYS}/libsanitizer/ |
16 | mkdir -p ${B}/${TARGET_SYS}/libsanitizer/ | 20 | mkdir -p ${B}/${TARGET_SYS}/libsanitizer/ |
@@ -47,11 +51,11 @@ do_install () { | |||
47 | } | 51 | } |
48 | 52 | ||
49 | INHIBIT_DEFAULT_DEPS = "1" | 53 | INHIBIT_DEFAULT_DEPS = "1" |
50 | ALLOW_EMPTY_${PN} = "1" | 54 | ALLOW_EMPTY:${PN} = "1" |
51 | DEPENDS = "virtual/crypt gcc-runtime virtual/${TARGET_PREFIX}gcc" | 55 | DEPENDS = "virtual/crypt gcc-runtime virtual/cross-cc" |
52 | 56 | ||
53 | # used to fix ../../../../../../../../../work-shared/gcc-8.3.0-r0/gcc-8.3.0/libsanitizer/libbacktrace/../../libbacktrace/elf.c:772:21: error: 'st.st_mode' may be used uninitialized in this function [-Werror=maybe-uninitialized] | 57 | # used to fix ../../../../../../../../../work-shared/gcc-8.3.0-r0/gcc-8.3.0/libsanitizer/libbacktrace/../../libbacktrace/elf.c:772:21: error: 'st.st_mode' may be used uninitialized in this function [-Werror=maybe-uninitialized] |
54 | DEBUG_OPTIMIZATION_append = " -Wno-error" | 58 | DEBUG_OPTIMIZATION:append = " -Wno-error" |
55 | 59 | ||
56 | BBCLASSEXTEND = "nativesdk" | 60 | BBCLASSEXTEND = "nativesdk" |
57 | 61 | ||
@@ -60,58 +64,63 @@ PACKAGES += "libasan libubsan liblsan libtsan" | |||
60 | PACKAGES += "libasan-dev libubsan-dev liblsan-dev libtsan-dev" | 64 | PACKAGES += "libasan-dev libubsan-dev liblsan-dev libtsan-dev" |
61 | PACKAGES += "libasan-staticdev libubsan-staticdev liblsan-staticdev libtsan-staticdev" | 65 | PACKAGES += "libasan-staticdev libubsan-staticdev liblsan-staticdev libtsan-staticdev" |
62 | 66 | ||
63 | RDEPENDS_libasan += "libstdc++" | 67 | RDEPENDS:libasan += "libstdc++" |
64 | RDEPENDS_libubsan += "libstdc++" | 68 | RDEPENDS:libubsan += "libstdc++" |
65 | RDEPENDS_liblsan += "libstdc++" | 69 | RDEPENDS:liblsan += "libstdc++" |
66 | RDEPENDS_libtsan += "libstdc++" | 70 | RDEPENDS:libtsan += "libstdc++" |
67 | RDEPENDS_libasan-dev += "${PN}" | 71 | RDEPENDS:libasan-dev += "${PN}" |
68 | RDEPENDS_libubsan-dev += "${PN}" | 72 | RDEPENDS:libubsan-dev += "${PN}" |
69 | RDEPENDS_liblsan-dev += "${PN}" | 73 | RDEPENDS:liblsan-dev += "${PN}" |
70 | RDEPENDS_libtsan-dev += "${PN}" | 74 | RDEPENDS:libtsan-dev += "${PN}" |
71 | RRECOMMENDS_${PN} += "libasan libubsan" | 75 | RRECOMMENDS:${PN} += "libasan libubsan" |
72 | RRECOMMENDS_${PN}_append_x86 = " liblsan" | 76 | RRECOMMENDS:${PN}:append:x86 = " liblsan" |
73 | RRECOMMENDS_${PN}_append_x86-64 = " liblsan libtsan" | 77 | RRECOMMENDS:${PN}:append:x86-64 = " liblsan libtsan" |
74 | RRECOMMENDS_${PN}_append_powerpc64 = " liblsan libtsan" | 78 | RRECOMMENDS:${PN}:append:powerpc64 = " liblsan libtsan" |
75 | RRECOMMENDS_${PN}_append_aarch64 = " liblsan libtsan" | 79 | RRECOMMENDS:${PN}:append:aarch64 = " liblsan libtsan" |
76 | 80 | RRECOMMENDS:${PN}:append:riscv64 = " liblsan libtsan" | |
77 | do_package_write_ipk[depends] += "virtual/${MLPREFIX}${TARGET_PREFIX}compilerlibs:do_packagedata" | 81 | |
78 | do_package_write_deb[depends] += "virtual/${MLPREFIX}${TARGET_PREFIX}compilerlibs:do_packagedata" | 82 | do_package_write_ipk[depends] += "virtual/${MLPREFIX}compilerlibs:do_packagedata" |
79 | do_package_write_rpm[depends] += "virtual/${MLPREFIX}${TARGET_PREFIX}compilerlibs:do_packagedata" | 83 | do_package_write_deb[depends] += "virtual/${MLPREFIX}compilerlibs:do_packagedata" |
80 | 84 | do_package_write_rpm[depends] += "virtual/${MLPREFIX}compilerlibs:do_packagedata" | |
81 | # Only x86, powerpc, sparc, s390, arm, and aarch64 are supported | 85 | |
82 | COMPATIBLE_HOST = '(x86_64|i.86|powerpc|sparc|s390|arm|aarch64).*-linux' | 86 | # Only x86, powerpc, sparc, s390, arm, aarch64 and loongarch64 are supported |
87 | COMPATIBLE_HOST = '(x86_64|i.86|powerpc|sparc|s390|arm|aarch64|loongarch64|riscv64).*-linux' | ||
83 | # musl is currently broken entirely | 88 | # musl is currently broken entirely |
84 | COMPATIBLE_HOST_libc-musl = 'null' | 89 | COMPATIBLE_HOST:libc-musl = 'null' |
85 | 90 | ||
86 | FILES_libasan += "${libdir}/libasan.so.*" | 91 | FILES:libasan += "${libdir}/libasan.so.* ${libdir}/libhwasan.so.*" |
87 | FILES_libasan-dev += "\ | 92 | FILES:libasan-dev += "\ |
88 | ${libdir}/libasan_preinit.o \ | 93 | ${libdir}/libasan_preinit.o \ |
94 | ${libdir}/libhwasan_preinit.o \ | ||
89 | ${libdir}/libasan.so \ | 95 | ${libdir}/libasan.so \ |
96 | ${libdir}/libhwasan.so \ | ||
90 | ${libdir}/libasan.la \ | 97 | ${libdir}/libasan.la \ |
91 | " | 98 | " |
92 | FILES_libasan-staticdev += "${libdir}/libasan.a" | 99 | FILES:libasan-staticdev += "${libdir}/libasan.a \ |
100 | ${libdir}/libhwasan.a \ | ||
101 | " | ||
93 | 102 | ||
94 | FILES_libubsan += "${libdir}/libubsan.so.*" | 103 | FILES:libubsan += "${libdir}/libubsan.so.*" |
95 | FILES_libubsan-dev += "\ | 104 | FILES:libubsan-dev += "\ |
96 | ${libdir}/libubsan.so \ | 105 | ${libdir}/libubsan.so \ |
97 | ${libdir}/libubsan.la \ | 106 | ${libdir}/libubsan.la \ |
98 | " | 107 | " |
99 | FILES_libubsan-staticdev += "${libdir}/libubsan.a" | 108 | FILES:libubsan-staticdev += "${libdir}/libubsan.a" |
100 | 109 | ||
101 | FILES_liblsan += "${libdir}/liblsan.so.*" | 110 | FILES:liblsan += "${libdir}/liblsan.so.*" |
102 | FILES_liblsan-dev += "\ | 111 | FILES:liblsan-dev += "\ |
103 | ${libdir}/liblsan.so \ | 112 | ${libdir}/liblsan.so \ |
104 | ${libdir}/liblsan.la \ | 113 | ${libdir}/liblsan.la \ |
105 | ${libdir}/liblsan_preinit.o \ | 114 | ${libdir}/liblsan_preinit.o \ |
106 | " | 115 | " |
107 | FILES_liblsan-staticdev += "${libdir}/liblsan.a" | 116 | FILES:liblsan-staticdev += "${libdir}/liblsan.a" |
108 | 117 | ||
109 | FILES_libtsan += "${libdir}/libtsan.so.*" | 118 | FILES:libtsan += "${libdir}/libtsan.so.*" |
110 | FILES_libtsan-dev += "\ | 119 | FILES:libtsan-dev += "\ |
111 | ${libdir}/libtsan.so \ | 120 | ${libdir}/libtsan.so \ |
112 | ${libdir}/libtsan.la \ | 121 | ${libdir}/libtsan.la \ |
113 | ${libdir}/libtsan_*.o \ | 122 | ${libdir}/libtsan_*.o \ |
114 | " | 123 | " |
115 | FILES_libtsan-staticdev += "${libdir}/libtsan.a" | 124 | FILES:libtsan-staticdev += "${libdir}/libtsan.a" |
116 | 125 | ||
117 | FILES_${PN} = "${libdir}/*.spec ${libdir}/${TARGET_SYS}/${BINV}/include/sanitizer/*.h" | 126 | FILES:${PN} = "${libdir}/*.spec ${libdir}/${TARGET_SYS}/${BINV}/include/sanitizer/*.h" |