From: Jakub Jelinek <jakub@redhat.com>
To: Thomas Schwinge <thomas@codesourcery.com>
Cc: gcc-patches@gcc.gnu.org
Subject: [committed] libgomp: Use sizeof(void*) based checks instead of looking through $CC $CFLAGS for -m32/-mx32
Date: Thu, 4 Mar 2021 09:52:41 +0100 [thread overview]
Message-ID: <20210304085241.GO4020736@tucnak> (raw)
In-Reply-To: <87lfcvidqy.fsf@euler.schwinge.homeip.net>
On Thu, Jan 14, 2021 at 07:18:13PM +0100, Thomas Schwinge wrote:
> libgomp/
> PR libgomp/65099
> * plugin/configfrag.ac (PLUGIN_NVPTX): Restrict to supported
> configurations.
> * configure: Regenerate.
> * plugin/plugin-nvptx.c (nvptx_get_num_devices): Remove 64-bit
> check.
Some gcc configurations default to -m32 but support -m64 too. This patch
just makes the ILP32 tests more reliable by following what e.g. libsanitizer
configury does. Perhaps we should incrementally also handle there
| i?86-*-*
I didn't change case to if because that would require reindenting the whole
large block.
Bootstrapped/regtested on x86_64-linux and i686-linux, committed to trunk.
2021-03-04 Jakub Jelinek <jakub@redhat.com>
* configure.ac: Add AC_CHECK_SIZEOF([void *]).
* plugin/configfrag.ac: Check $ac_cv_sizeof_void_p value instead of
checking of -m32 or -mx32 options on the command line.
* config.h.in: Regenerated.
* configure: Regenerated.
--- libgomp/configure.ac.jj 2020-07-28 15:39:10.148754303 +0200
+++ libgomp/configure.ac 2021-03-03 14:41:21.964355951 +0100
@@ -221,6 +221,8 @@ if test x$libgomp_offloaded_only = xyes;
[Define to 1 if building libgomp for an accelerator-only target.])
fi
+AC_CHECK_SIZEOF([void *])
+
m4_include([plugin/configfrag.ac])
# Check for functions needed.
--- libgomp/plugin/configfrag.ac.jj 2021-01-14 19:34:06.164423884 +0100
+++ libgomp/plugin/configfrag.ac 2021-03-03 14:45:45.374070228 +0100
@@ -160,8 +160,8 @@ if test x"$enable_offload_targets" != x;
nvptx*)
case "${target}" in
aarch64*-*-* | powerpc64le-*-* | x86_64-*-*)
- case " ${CC} ${CFLAGS} " in
- *" -m32 "* | *" -mx32 "*)
+ case "$ac_cv_sizeof_void_p" in
+ 4)
# PR libgomp/65099: Currently, we only support offloading in
# 64-bit configurations.
PLUGIN_NVPTX=0
@@ -218,8 +218,8 @@ if test x"$enable_offload_targets" != x;
amdgcn*)
case "${target}" in
x86_64-*-*)
- case " ${CC} ${CFLAGS} " in
- *" -m32 "*|*" -mx32 "*)
+ case "$ac_cv_sizeof_void_p" in
+ 4)
PLUGIN_GCN=0
;;
*)
--- libgomp/config.h.in.jj 2020-08-03 22:54:51.483530741 +0200
+++ libgomp/config.h.in 2021-03-03 14:46:07.965788364 +0100
@@ -183,6 +183,9 @@
/* Define if all infrastructure, needed for plugins, is supported. */
#undef PLUGIN_SUPPORT
+/* The size of `void *', as computed by sizeof. */
+#undef SIZEOF_VOID_P
+
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
--- libgomp/configure.jj 2021-01-14 19:34:06.140424158 +0100
+++ libgomp/configure 2021-03-03 14:46:05.317821453 +0100
@@ -2058,60 +2058,6 @@ fi
} # ac_fn_c_check_header_mongrel
-# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
-# -------------------------------------------
-# Tests whether TYPE exists after having included INCLUDES, setting cache
-# variable VAR accordingly.
-ac_fn_c_check_type ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- eval "$3=no"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-if (sizeof ($2))
- return 0;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-if (sizeof (($2)))
- return 0;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
- eval "$3=yes"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_type
-
# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
# --------------------------------------------
# Tries to find the compile-time value of EXPR in a program that includes
@@ -2294,6 +2240,60 @@ rm -f conftest.val
as_fn_set_status $ac_retval
} # ac_fn_c_compute_int
+
+# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
+# -------------------------------------------
+# Tests whether TYPE exists after having included INCLUDES, setting cache
+# variable VAR accordingly.
+ac_fn_c_check_type ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=no"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+if (sizeof ($2))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+if (sizeof (($2)))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ eval "$3=yes"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_type
cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
@@ -11421,7 +11421,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11434 "configure"
+#line 11424 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11527,7 +11527,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11540 "configure"
+#line 11530 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -14251,16 +14251,6 @@ freebsd* | dragonfly*)
esac
;;
-gnu*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- hardcode_into_libs=yes
- ;;
-
haiku*)
version_type=linux
need_lib_prefix=no
@@ -14382,7 +14372,7 @@ linux*oldld* | linux*aout* | linux*coff*
# project, but have not yet been accepted: they are GCC-local changes
# for the time being. (See
# https://lists.gnu.org/archive/html/libtool-patches/2018-05/msg00000.html)
-linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu* | uclinuxfdpiceabi)
version_type=linux
need_lib_prefix=no
need_version=no
@@ -15005,9 +14995,43 @@ $as_echo "#define LIBGOMP_OFFLOADED_ONLY
fi
+# The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5
+$as_echo_n "checking size of void *... " >&6; }
+if ${ac_cv_sizeof_void_p+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then :
+
+else
+ if test "$ac_cv_type_void_p" = 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 77 "cannot compute sizeof (void *)
+See \`config.log' for more details" "$LINENO" 5; }
+ else
+ ac_cv_sizeof_void_p=0
+ fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5
+$as_echo "$ac_cv_sizeof_void_p" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_VOID_P $ac_cv_sizeof_void_p
+_ACEOF
+
+
+
# Plugins for offload execution, configure.ac fragment. -*- mode: autoconf -*-
#
-# Copyright (C) 2014-2020 Free Software Foundation, Inc.
+# Copyright (C) 2014-2021 Free Software Foundation, Inc.
#
# Contributed by Mentor Embedded.
#
@@ -15274,8 +15298,8 @@ if test x"$enable_offload_targets" != x;
nvptx*)
case "${target}" in
aarch64*-*-* | powerpc64le-*-* | x86_64-*-*)
- case " ${CC} ${CFLAGS} " in
- *" -m32 "* | *" -mx32 "*)
+ case "$ac_cv_sizeof_void_p" in
+ 4)
# PR libgomp/65099: Currently, we only support offloading in
# 64-bit configurations.
PLUGIN_NVPTX=0
@@ -15343,8 +15367,8 @@ rm -f core conftest.err conftest.$ac_obj
amdgcn*)
case "${target}" in
x86_64-*-*)
- case " ${CC} ${CFLAGS} " in
- *" -m32 "*|*" -mx32 "*)
+ case "$ac_cv_sizeof_void_p" in
+ 4)
PLUGIN_GCN=0
;;
*)
Jakub
next prev parent reply other threads:[~2021-03-04 8:53 UTC|newest]
Thread overview: 83+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-20 14:19 The nvptx port [0/11+] Bernd Schmidt
2014-10-20 14:21 ` The nvptx port [1/11+] indirect jumps Bernd Schmidt
2014-10-21 18:29 ` Jeff Law
2014-10-21 21:03 ` Bernd Schmidt
2014-10-21 21:30 ` Jakub Jelinek
2014-10-21 21:37 ` Bernd Schmidt
2014-10-22 8:21 ` Richard Biener
2014-10-22 8:34 ` Jakub Jelinek
2014-10-22 8:37 ` Thomas Schwinge
2014-10-22 10:03 ` Richard Biener
2014-10-22 10:32 ` Jakub Jelinek
2014-11-04 15:35 ` Bernd Schmidt
2014-11-04 15:43 ` Richard Henderson
2014-10-20 14:22 ` The nvptx port [2/11+] No register allocation Bernd Schmidt
2014-10-20 14:24 ` Bernd Schmidt
2014-10-21 18:36 ` Jeff Law
2014-10-20 14:24 ` The nvptx port [3/11+] Struct returns Bernd Schmidt
2014-10-21 18:41 ` Jeff Law
2014-10-20 14:27 ` The nvptx port [5/11+] Variable declarations Bernd Schmidt
2014-10-21 18:44 ` Jeff Law
2014-10-20 14:27 ` The nvptx port [4/11+] Post-RA pipeline Bernd Schmidt
2014-10-21 18:42 ` Jeff Law
2024-06-28 15:07 ` Document 'pass_postreload' vs. 'pass_late_compilation' (was: The nvptx port [4/11+] Post-RA pipeline) Thomas Schwinge
2014-10-20 14:31 ` The nvptx port [6/11+] Pseudo call args Bernd Schmidt
2014-10-21 18:56 ` Jeff Law
2014-10-20 14:32 ` The nvptx port [7/11+] Inform the port about call arguments Bernd Schmidt
2014-10-21 21:25 ` Jeff Law
2014-10-21 21:33 ` Bernd Schmidt
2014-10-21 21:55 ` Jeff Law
2014-10-21 22:16 ` Bernd Schmidt
2014-10-22 18:23 ` Jeff Law
2014-10-28 14:57 ` Bernd Schmidt
2014-10-29 23:42 ` Jeff Law
2014-10-20 14:32 ` The nvptx port [8/11+] Write undefined decls Bernd Schmidt
2014-10-21 22:07 ` Jeff Law
2014-10-21 22:30 ` Bernd Schmidt
2014-10-22 18:23 ` Jeff Law
2014-11-05 12:05 ` Bernd Schmidt
2014-11-05 20:05 ` Jeff Law
2014-10-20 14:35 ` The nvptx port [9/11+] Epilogues Bernd Schmidt
2014-10-21 22:08 ` Jeff Law
2014-10-20 14:50 ` The nvptx port [10/11+] Target files Bernd Schmidt
2014-10-22 18:12 ` Jeff Law
2014-10-28 15:10 ` Bernd Schmidt
2014-10-29 23:51 ` Jeff Law
2014-10-30 2:53 ` Bernd Schmidt
2014-10-30 3:09 ` Jeff Law
2014-11-10 16:33 ` Bernd Schmidt
2014-11-10 20:06 ` Jakub Jelinek
2014-11-10 20:37 ` H.J. Lu
2014-11-10 20:40 ` H.J. Lu
2014-11-10 20:42 ` Mike Stump
2014-12-12 20:18 ` Thomas Schwinge
2014-12-23 18:51 ` nvptx-tools and nvptx-newlib (was: The nvptx port [10/11+] Target files) Thomas Schwinge
2015-02-02 15:33 ` Thomas Schwinge
2015-02-04 9:43 ` Jakub Jelinek
2015-02-18 8:50 ` Thomas Schwinge
2015-02-18 9:03 ` Jakub Jelinek
2015-07-08 15:03 ` [nvptx offloading] Only 64-bit configurations are currently supported (was: nvptx-tools and nvptx-newlib) Thomas Schwinge
2015-07-14 20:10 ` [nvptx offloading] Only 64-bit configurations are currently supported Thomas Schwinge
2015-07-14 20:25 ` Richard Biener
2021-01-14 18:18 ` [nvptx libgomp plugin] Build only in supported configurations (was: [nvptx offloading] Only 64-bit configurations are currently supported) Thomas Schwinge
2021-03-04 8:52 ` Jakub Jelinek [this message]
2021-03-22 11:24 ` [committed] libgomp: Use sizeof(void*) based checks instead of looking through $CC $CFLAGS for -m32/-mx32 Thomas Schwinge
2014-11-04 16:48 ` The nvptx port [10/11+] Target files Richard Henderson
2014-11-04 16:55 ` Bernd Schmidt
2014-11-05 13:07 ` Bernd Schmidt
2014-10-20 14:58 ` The nvptx port [11/11] More tools Bernd Schmidt
2014-10-21 0:16 ` Joseph S. Myers
2014-10-22 20:40 ` Jeff Law
2014-10-22 21:16 ` Bernd Schmidt
2014-10-24 19:52 ` Jeff Law
2014-10-31 21:04 ` Jeff Law
[not found] ` <54542050.6010908@codesourcery.com>
2014-11-03 21:49 ` Jeff Law
2014-10-21 8:23 ` The nvptx port [0/11+] Richard Biener
2014-10-21 10:57 ` Bernd Schmidt
2014-10-21 11:27 ` Richard Biener
2014-10-21 9:17 ` Jakub Jelinek
2014-10-21 11:19 ` Bernd Schmidt
2014-11-12 12:36 ` Richard Biener
2014-11-12 21:39 ` Jeff Law
2015-02-18 7:48 ` nvptx-none: Define empty GOMP_SELF_SPECS (was: The nvptx port [0/11+]) Thomas Schwinge
2015-02-18 8:01 ` The nvptx port [0/11+] Thomas Schwinge
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210304085241.GO4020736@tucnak \
--to=jakub@redhat.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=thomas@codesourcery.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).