diff options
Diffstat (limited to 'packages/gcc/11.4.0/0009-libstdc-Check-for-TLS-support-on-mingw-cross-compile.patch')
-rw-r--r-- | packages/gcc/11.4.0/0009-libstdc-Check-for-TLS-support-on-mingw-cross-compile.patch | 244 |
1 files changed, 0 insertions, 244 deletions
diff --git a/packages/gcc/11.4.0/0009-libstdc-Check-for-TLS-support-on-mingw-cross-compile.patch b/packages/gcc/11.4.0/0009-libstdc-Check-for-TLS-support-on-mingw-cross-compile.patch deleted file mode 100644 index abd82ffe..00000000 --- a/packages/gcc/11.4.0/0009-libstdc-Check-for-TLS-support-on-mingw-cross-compile.patch +++ /dev/null @@ -1,244 +0,0 @@ -From cc1e28878a228b6c4a0872e56d97ac88971b7725 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Hugo=20Beauz=C3=A9e-Luyssen?= <hugo@beauzee.fr> -Date: Tue, 14 Sep 2021 16:41:37 +0100 -Subject: [PATCH] libstdc++: Check for TLS support on mingw cross-compilers - -Native mingw builds enable TLS, but crosses don't because we don't use -GCC_CHECK_TLS in the cross-compiler config. - -libstdc++-v3/ChangeLog: - - * crossconfig.m4: Check for TLS support on mingw. - * configure: Regenerate. ---- - libstdc++-v3/configure | 208 ++++++++++++++++++++++++++++++++++++++++++++ - libstdc++-v3/crossconfig.m4 | 1 - 2 files changed, 209 insertions(+) - ---- a/libstdc++-v3/configure -+++ b/libstdc++-v3/configure -@@ -60390,6 +60390,214 @@ - fi - done - -+ -+ -+ # Check whether --enable-tls was given. -+if test "${enable_tls+set}" = set; then : -+ enableval=$enable_tls; -+ case "$enableval" in -+ yes|no) ;; -+ *) as_fn_error $? "Argument to enable/disable tls must be yes or no" "$LINENO" 5 ;; -+ esac -+ -+else -+ enable_tls=yes -+fi -+ -+ -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the target supports thread-local storage" >&5 -+$as_echo_n "checking whether the target supports thread-local storage... " >&6; } -+if ${gcc_cv_have_tls+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ -+ if test "$cross_compiling" = yes; then : -+ if test x$gcc_no_link = xyes; then -+ as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5 -+fi -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+__thread int a; int b; int main() { return a = b; } -+_ACEOF -+if ac_fn_c_try_link "$LINENO"; then : -+ chktls_save_LDFLAGS="$LDFLAGS" -+ case $host in -+ *-*-linux* | -*-uclinuxfdpic*) -+ LDFLAGS="-shared -Wl,--no-undefined $LDFLAGS" -+ ;; -+ esac -+ chktls_save_CFLAGS="$CFLAGS" -+ CFLAGS="-fPIC $CFLAGS" -+ if test x$gcc_no_link = xyes; then -+ as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5 -+fi -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+int f() { return 0; } -+_ACEOF -+if ac_fn_c_try_link "$LINENO"; then : -+ if test x$gcc_no_link = xyes; then -+ as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5 -+fi -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+__thread int a; int b; int f() { return a = b; } -+_ACEOF -+if ac_fn_c_try_link "$LINENO"; then : -+ gcc_cv_have_tls=yes -+else -+ gcc_cv_have_tls=no -+fi -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext -+else -+ gcc_cv_have_tls=yes -+fi -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext -+ CFLAGS="$chktls_save_CFLAGS" -+ LDFLAGS="$chktls_save_LDFLAGS" -+else -+ gcc_cv_have_tls=no -+fi -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext -+ -+ -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+__thread int a; int b; int main() { return a = b; } -+_ACEOF -+if ac_fn_c_try_run "$LINENO"; then : -+ chktls_save_LDFLAGS="$LDFLAGS" -+ LDFLAGS="-static $LDFLAGS" -+ if test x$gcc_no_link = xyes; then -+ as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5 -+fi -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+int main() { return 0; } -+_ACEOF -+if ac_fn_c_try_link "$LINENO"; then : -+ if test "$cross_compiling" = yes; then : -+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -+as_fn_error $? "cannot run test program while cross compiling -+See \`config.log' for more details" "$LINENO" 5; } -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+__thread int a; int b; int main() { return a = b; } -+_ACEOF -+if ac_fn_c_try_run "$LINENO"; then : -+ gcc_cv_have_tls=yes -+else -+ gcc_cv_have_tls=no -+fi -+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ -+ conftest.$ac_objext conftest.beam conftest.$ac_ext -+fi -+ -+else -+ gcc_cv_have_tls=yes -+fi -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext -+ LDFLAGS="$chktls_save_LDFLAGS" -+ if test $gcc_cv_have_tls = yes; then -+ chktls_save_CFLAGS="$CFLAGS" -+ thread_CFLAGS=failed -+ for flag in '' '-pthread' '-lpthread'; do -+ CFLAGS="$flag $chktls_save_CFLAGS" -+ if test x$gcc_no_link = xyes; then -+ as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5 -+fi -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+#include <pthread.h> -+ void *g(void *d) { return NULL; } -+int -+main () -+{ -+pthread_t t; pthread_create(&t,NULL,g,NULL); -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_link "$LINENO"; then : -+ thread_CFLAGS="$flag" -+fi -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext -+ if test "X$thread_CFLAGS" != Xfailed; then -+ break -+ fi -+ done -+ CFLAGS="$chktls_save_CFLAGS" -+ if test "X$thread_CFLAGS" != Xfailed; then -+ CFLAGS="$thread_CFLAGS $chktls_save_CFLAGS" -+ if test "$cross_compiling" = yes; then : -+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -+as_fn_error $? "cannot run test program while cross compiling -+See \`config.log' for more details" "$LINENO" 5; } -+else -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+#include <pthread.h> -+ __thread int a; -+ static int *volatile a_in_other_thread; -+ static void * -+ thread_func (void *arg) -+ { -+ a_in_other_thread = &a; -+ return (void *)0; -+ } -+int -+main () -+{ -+pthread_t thread; -+ void *thread_retval; -+ int *volatile a_in_main_thread; -+ a_in_main_thread = &a; -+ if (pthread_create (&thread, (pthread_attr_t *)0, -+ thread_func, (void *)0)) -+ return 0; -+ if (pthread_join (thread, &thread_retval)) -+ return 0; -+ return (a_in_other_thread == a_in_main_thread); -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_run "$LINENO"; then : -+ gcc_cv_have_tls=yes -+else -+ gcc_cv_have_tls=no -+fi -+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ -+ conftest.$ac_objext conftest.beam conftest.$ac_ext -+fi -+ -+ CFLAGS="$chktls_save_CFLAGS" -+ fi -+ fi -+else -+ gcc_cv_have_tls=no -+fi -+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ -+ conftest.$ac_objext conftest.beam conftest.$ac_ext -+fi -+ -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_have_tls" >&5 -+$as_echo "$gcc_cv_have_tls" >&6; } -+ if test "$enable_tls $gcc_cv_have_tls" = "yes yes"; then -+ -+$as_echo "#define HAVE_TLS 1" >>confdefs.h -+ -+ fi - ;; - *-netbsd* | *-openbsd*) - SECTION_FLAGS='-ffunction-sections -fdata-sections' ---- a/libstdc++-v3/crossconfig.m4 -+++ b/libstdc++-v3/crossconfig.m4 -@@ -204,6 +204,7 @@ - GLIBCXX_CHECK_STDLIB_SUPPORT - AC_CHECK_FUNCS(aligned_alloc posix_memalign memalign _aligned_malloc) - AC_CHECK_FUNCS(_wfopen) -+ GCC_CHECK_TLS - ;; - *-netbsd* | *-openbsd*) - SECTION_FLAGS='-ffunction-sections -fdata-sections' |