name = gcc
version = 4.9.2
-release = 1
+release = 2
maintainer = Michael Tremer <michael.tremer@ipfire.org>
groups = Development/Compilers
# Build libtasn (only on x86_64).
build_libtsan = 0
+ # Build libubsan
+ build_libubsan = 0
+
# Build libcilkrts (only x86)
build_libcilkrts = 0
build_libquadmath = 1
build_liblsan = 1
build_libtsan = 1
+ build_libubsan = 1
build_libcilkrts = 1
end
configure_options = --with-arch=%{DISTRO_ARCH} --with-tune=generic
build_libquadmath = 1
+ build_libubsan = 1
build_libcilkrts = 1
end
- if "%{DISTRO_ARCH}" == "armv5tel"
+ if "%{DISTRO_ARCH}" == "aarch64"
make_bootstrap = bootstrap
-
- configure_options += --disable-sjlj-exceptions
- configure_options += --with-float=soft
end
if "%{DISTRO_ARCH}" == "armv7hl"
--with-float=hard \
--with-fpu=vfpv3-d16 \
--with-abi=aapcs-linux
+
+ build_libubsan = 1
+ end
+
+ if "%{DISTRO_ARCH}" == "armv5tel"
+ make_bootstrap = bootstrap
+
+ configure_options += --disable-sjlj-exceptions
+ configure_options += --with-float=soft
+
+ build_libubsan = 1
end
if "%{build_cloog}" == "1"
fi
# libubsan
- ln -svf ../../../libubsan.so.0.0.0 ${FULLPATH}/libubsan.so
- chmod 755 %{BUILDROOT}%{libdir}/libubsan.so.*
+ if [ "%{build_libubsan}" = "1" ]; then
+ ln -svf ../../../libubsan.so.0.0.0 ${FULLPATH}/libubsan.so
+ chmod 755 %{BUILDROOT}%{libdir}/libubsan.so.*
+ fi
# libcilkrts
if [ "%{build_libcilkrts}" = "1" ]; then
end
end
- package libubsan
- summary = The Undefined Behavior Sanitizer runtime library
- description
- This package contains the Undefined Behavior Sanitizer library
- which is used for -fsanitize=undefined instrumented programs.
- end
+ if "%{build_libubsan}" == "1"
+ package libubsan
+ summary = The Undefined Behavior Sanitizer runtime library
+ description
+ This package contains the Undefined Behavior Sanitizer library
+ which is used for -fsanitize=undefined instrumented programs.
+ end
- files
- %{libdir}/libubsan.so.0*
+ files
+ %{libdir}/libubsan.so.0*
+ end
end
end
name = glibc
version = 2.20
-release = 1
+release = 2
maintainer = Michael Tremer <michael.tremer@ipfire.org>
groups = System/Base
--- /dev/null
+diff --git a/sysdeps/aarch64/dl-machine.h b/sysdeps/aarch64/dl-machine.h
+index 997c860..50b37b0 100644
+--- a/sysdeps/aarch64/dl-machine.h
++++ b/sysdeps/aarch64/dl-machine.h
+@@ -295,7 +295,7 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
+ # ifndef SHARED
+ CHECK_STATIC_TLS (map, sym_map);
+ # else
+- if (!TRY_STATIC_TLS (map, sym_map))
++ if (1)
+ {
+ td->arg = _dl_make_tlsdesc_dynamic
+ (sym_map, sym->st_value + reloc->r_addend);
--- /dev/null
+diff --git a/sysdeps/aarch64/dl-tlsdesc.S b/sysdeps/aarch64/dl-tlsdesc.S
+index ded5471..7d28496 100644
+--- a/sysdeps/aarch64/dl-tlsdesc.S
++++ b/sysdeps/aarch64/dl-tlsdesc.S
+@@ -140,7 +140,7 @@ _dl_tlsdesc_undefweak:
+ cfi_startproc
+ .align 2
+ _dl_tlsdesc_dynamic:
+-# define NSAVEXREGPAIRS 2
++# define NSAVEXREGPAIRS 3
+ stp x29, x30, [sp,#-(32+16*NSAVEXREGPAIRS)]!
+ cfi_adjust_cfa_offset (32+16*NSAVEXREGPAIRS)
+ mov x29, sp
+@@ -151,6 +151,10 @@ _dl_tlsdesc_dynamic:
+ stp x1, x2, [sp, #32+16*0]
+ stp x3, x4, [sp, #32+16*1]
+
++ /* Work around GCC rescheduling compares across tlsdesc calls. */
++ mrs x30, nzcv
++ stp xzr, x30, [sp, #32+16*2]
++
+ mrs x4, tpidr_el0
+ ldr x1, [x0,#8]
+ ldr x0, [x4]
+@@ -169,6 +173,8 @@ _dl_tlsdesc_dynamic:
+ 1:
+ ldp x1, x2, [sp, #32+16*0]
+ ldp x3, x4, [sp, #32+16*1]
++ ldp xzr, x30, [sp, #32+16*2]
++ msr nzcv, x30
+
+ ldp x29, x30, [sp], #(32+16*NSAVEXREGPAIRS)
+ cfi_adjust_cfa_offset (32+16*NSAVEXREGPAIRS)