summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog23
-rw-r--r--gcc/Makefile.in3
-rw-r--r--gcc/config.in12
-rw-r--r--gcc/config/aarch64/aarch64.c4
-rw-r--r--gcc/config/arm/arm.c4
-rw-r--r--gcc/config/rs6000/rs6000-call.c5
-rw-r--r--gcc/config/s390/s390.c6
-rwxr-xr-xgcc/configure22
-rw-r--r--gcc/configure.ac14
-rw-r--r--gcc/doc/install.texi13
-rw-r--r--gcc/opts.c10
-rw-r--r--gcc/opts.h1
12 files changed, 78 insertions, 39 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3769a91999f..5b69334a26b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,26 @@
+2020-04-30 Jakub Jelinek <jakub@redhat.com>
+
+ * configure.ac (--with-documentation-root-url,
+ --with-changes-root-url): Diagnose URL not ending with /,
+ use AC_DEFINE_UNQUOTED instead of AC_SUBST.
+ * opts.h (get_changes_url): Remove.
+ * opts.c (get_changes_url): Remove.
+ * Makefile.in (CFLAGS-opts.o): Don't add -DDOCUMENTATION_ROOT_URL
+ or -DCHANGES_ROOT_URL.
+ * doc/install.texi (--with-documentation-root-url,
+ --with-changes-root-url): Document.
+ * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Don't call
+ get_changes_url and free, change url variable type to const char * and
+ set it to CHANGES_ROOT_URL "gcc-10/changes.html#empty_base".
+ * config/s390/s390.c (s390_function_arg_vector,
+ s390_function_arg_float): Likewise.
+ * config/aarch64/aarch64.c (aarch64_vfp_is_call_or_return_candidate):
+ Likewise.
+ * config/rs6000/rs6000-call.c (rs6000_discover_homogeneous_aggregate):
+ Likewise.
+ * config.in: Regenerate.
+ * configure: Regenerate.
+
2020-04-30 Christophe Lyon <christophe.lyon@linaro.org>
PR target/57002
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 85f30bf0391..543b477ff18 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -2186,9 +2186,6 @@ lto-wrapper$(exeext): $(LTO_WRAPPER_OBJS) libcommon-target.a $(LIBDEPS)
$(LTO_WRAPPER_OBJS) libcommon-target.a $(LIBS)
mv -f T$@ $@
-CFLAGS-opts.o += -DDOCUMENTATION_ROOT_URL=\"@DOCUMENTATION_ROOT_URL@\"
-CFLAGS-opts.o += -DCHANGES_ROOT_URL=\"@CHANGES_ROOT_URL@\"
-
# Files used by all variants of C or by the stand-alone pre-processor.
CFLAGS-c-family/c-opts.o += @TARGET_SYSTEM_ROOT_DEFINE@
diff --git a/gcc/config.in b/gcc/config.in
index 01fb18dbbb5..809e7b26823 100644
--- a/gcc/config.in
+++ b/gcc/config.in
@@ -24,6 +24,12 @@
#endif
+/* Define to the root for URLs about GCC changes. */
+#ifndef USED_FOR_TARGET
+#undef CHANGES_ROOT_URL
+#endif
+
+
/* Define as the number of bits in a byte, if `limits.h' doesn't. */
#ifndef USED_FOR_TARGET
#undef CHAR_BIT
@@ -82,6 +88,12 @@
#endif
+/* Define to the root for documentation URLs. */
+#ifndef USED_FOR_TARGET
+#undef DOCUMENTATION_ROOT_URL
+#endif
+
+
/* Define 0/1 if static analyzer feature is enabled. */
#ifndef USED_FOR_TARGET
#undef ENABLE_ANALYZER
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index c1a050fbf2a..409ca8d9519 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -16883,7 +16883,8 @@ aarch64_vfp_is_call_or_return_candidate (machine_mode mode,
&& ((alt = aapcs_vfp_sub_candidate (type, &new_mode, NULL))
!= ag_count))
{
- char *url = get_changes_url ("gcc-10/changes.html#empty_base");
+ const char *url
+ = CHANGES_ROOT_URL "gcc-10/changes.html#empty_base";
gcc_assert (alt == -1);
last_reported_type_uid = uid;
/* Use TYPE_MAIN_VARIANT to strip any redundant const
@@ -16898,7 +16899,6 @@ aarch64_vfp_is_call_or_return_candidate (machine_mode mode,
"type %qT when C++17 is enabled changed to match "
"C++14 %{in GCC 10.1%}",
TYPE_MAIN_VARIANT (type), url);
- free (url);
}
if (is_ha != NULL) *is_ha = true;
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 29f2a0c2967..b169250918c 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -6414,7 +6414,8 @@ aapcs_vfp_is_call_or_return_candidate (enum arm_pcs pcs_variant,
&& ((alt = aapcs_vfp_sub_candidate (type, &new_mode, NULL))
!= ag_count))
{
- char *url = get_changes_url ("gcc-10/changes.html#empty_base");
+ const char *url
+ = CHANGES_ROOT_URL "gcc-10/changes.html#empty_base";
gcc_assert (alt == -1);
last_reported_type_uid = uid;
/* Use TYPE_MAIN_VARIANT to strip any redundant const
@@ -6429,7 +6430,6 @@ aapcs_vfp_is_call_or_return_candidate (enum arm_pcs pcs_variant,
"type %qT when C++17 is enabled changed to match "
"C++14 %{in GCC 10.1%}",
TYPE_MAIN_VARIANT (type), url);
- free (url);
}
*count = ag_count;
}
diff --git a/gcc/config/rs6000/rs6000-call.c b/gcc/config/rs6000/rs6000-call.c
index 4e6dd34f446..7621d6f5278 100644
--- a/gcc/config/rs6000/rs6000-call.c
+++ b/gcc/config/rs6000/rs6000-call.c
@@ -5748,8 +5748,8 @@ rs6000_discover_homogeneous_aggregate (machine_mode mode, const_tree type,
unsigned uid = TYPE_UID (TYPE_MAIN_VARIANT (type));
if (uid != last_reported_type_uid)
{
- char *url
- = get_changes_url ("gcc-10/changes.html#empty_base");
+ const char *url
+ = CHANGES_ROOT_URL "gcc-10/changes.html#empty_base";
if (empty_base_seen & 1)
inform (input_location,
"parameter passing for argument of type %qT "
@@ -5761,7 +5761,6 @@ rs6000_discover_homogeneous_aggregate (machine_mode mode, const_tree type,
"with %<[[no_unique_address]]%> members "
"changed %{in GCC 10.1%}", type, url);
last_reported_type_uid = uid;
- free (url);
}
}
return true;
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index 40281e87254..18332271ed7 100644
--- a/gcc/config/s390/s390.c
+++ b/gcc/config/s390/s390.c
@@ -11960,7 +11960,7 @@ s390_function_arg_vector (machine_mode mode, const_tree type)
unsigned uid = TYPE_UID (TYPE_MAIN_VARIANT (orig_type));
if (uid != last_reported_type_uid)
{
- char *url = get_changes_url ("gcc-10/changes.html#empty_base");
+ const char *url = CHANGES_ROOT_URL "gcc-10/changes.html#empty_base";
last_reported_type_uid = uid;
if (empty_base_seen & 1)
inform (input_location,
@@ -11972,7 +11972,6 @@ s390_function_arg_vector (machine_mode mode, const_tree type)
"parameter passing for argument of type %qT with "
"%<[[no_unique_address]]%> members changed "
"%{in GCC 10.1%}", orig_type, url);
- free (url);
}
}
return true;
@@ -12038,7 +12037,7 @@ s390_function_arg_float (machine_mode mode, const_tree type)
unsigned uid = TYPE_UID (TYPE_MAIN_VARIANT (orig_type));
if (uid != last_reported_type_uid)
{
- char *url = get_changes_url ("gcc-10/changes.html#empty_base");
+ const char *url = CHANGES_ROOT_URL "gcc-10/changes.html#empty_base";
last_reported_type_uid = uid;
if (empty_base_seen & 1)
inform (input_location,
@@ -12050,7 +12049,6 @@ s390_function_arg_float (machine_mode mode, const_tree type)
"parameter passing for argument of type %qT with "
"%<[[no_unique_address]]%> members changed "
"%{in GCC 10.1%}", orig_type, url);
- free (url);
}
}
diff --git a/gcc/configure b/gcc/configure
index c8fb7a8a7ac..f7030a2356f 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -819,8 +819,6 @@ accel_dir_suffix
real_target_noncanonical
enable_as_accelerator
gnat_install_lib
-CHANGES_ROOT_URL
-DOCUMENTATION_ROOT_URL
REPORT_BUGS_TEXI
REPORT_BUGS_TO
PKGVERSION
@@ -7851,8 +7849,8 @@ if test "${with_documentation_root_url+set}" = set; then :
withval=$with_documentation_root_url; case "$withval" in
yes) as_fn_error $? "documentation root URL not specified" "$LINENO" 5 ;;
no) as_fn_error $? "documentation root URL not specified" "$LINENO" 5 ;;
- *) DOCUMENTATION_ROOT_URL="$withval"
- ;;
+ */) DOCUMENTATION_ROOT_URL="$withval" ;;
+ *) as_fn_error $? "documentation root URL does not end with /" "$LINENO" 5 ;;
esac
else
DOCUMENTATION_ROOT_URL="https://gcc.gnu.org/onlinedocs/"
@@ -7860,6 +7858,10 @@ else
fi
+cat >>confdefs.h <<_ACEOF
+#define DOCUMENTATION_ROOT_URL "$DOCUMENTATION_ROOT_URL"
+_ACEOF
+
# Allow overriding the default URL for GCC changes
@@ -7868,8 +7870,8 @@ if test "${with_changes_root_url+set}" = set; then :
withval=$with_changes_root_url; case "$withval" in
yes) as_fn_error $? "changes root URL not specified" "$LINENO" 5 ;;
no) as_fn_error $? "changes root URL not specified" "$LINENO" 5 ;;
- *) CHANGES_ROOT_URL="$withval"
- ;;
+ */) CHANGES_ROOT_URL="$withval" ;;
+ *) as_fn_error $? "changes root URL does not end with /" "$LINENO" 5 ;;
esac
else
CHANGES_ROOT_URL="https://gcc.gnu.org/"
@@ -7877,6 +7879,10 @@ else
fi
+cat >>confdefs.h <<_ACEOF
+#define CHANGES_ROOT_URL "$CHANGES_ROOT_URL"
+_ACEOF
+
# Sanity check enable_languages in case someone does not run the toplevel
# configure # script.
@@ -19009,7 +19015,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 19012 "configure"
+#line 19018 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -19115,7 +19121,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 19118 "configure"
+#line 19124 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
diff --git a/gcc/configure.ac b/gcc/configure.ac
index 330e3285dce..12297b7369e 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -979,12 +979,13 @@ AC_ARG_WITH(documentation-root-url,
[case "$withval" in
yes) AC_MSG_ERROR([documentation root URL not specified]) ;;
no) AC_MSG_ERROR([documentation root URL not specified]) ;;
- *) DOCUMENTATION_ROOT_URL="$withval"
- ;;
+ */) DOCUMENTATION_ROOT_URL="$withval" ;;
+ *) AC_MSG_ERROR([documentation root URL does not end with /]) ;;
esac],
DOCUMENTATION_ROOT_URL="https://gcc.gnu.org/onlinedocs/"
)
-AC_SUBST(DOCUMENTATION_ROOT_URL)
+AC_DEFINE_UNQUOTED(DOCUMENTATION_ROOT_URL,"$DOCUMENTATION_ROOT_URL",
+ [Define to the root for documentation URLs.])
# Allow overriding the default URL for GCC changes
AC_ARG_WITH(changes-root-url,
@@ -993,12 +994,13 @@ AC_ARG_WITH(changes-root-url,
[case "$withval" in
yes) AC_MSG_ERROR([changes root URL not specified]) ;;
no) AC_MSG_ERROR([changes root URL not specified]) ;;
- *) CHANGES_ROOT_URL="$withval"
- ;;
+ */) CHANGES_ROOT_URL="$withval" ;;
+ *) AC_MSG_ERROR([changes root URL does not end with /]) ;;
esac],
CHANGES_ROOT_URL="https://gcc.gnu.org/"
)
-AC_SUBST(CHANGES_ROOT_URL)
+AC_DEFINE_UNQUOTED(CHANGES_ROOT_URL,"$CHANGES_ROOT_URL",
+ [Define to the root for URLs about GCC changes.])
# Sanity check enable_languages in case someone does not run the toplevel
# configure # script.
diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index 39ae0680260..3c25a22cbb7 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -684,6 +684,19 @@ if you determine that they are not bugs in your modifications.
The default value refers to the FSF's GCC bug tracker.
+@item --with-documentation-root-url=@var{url}
+Specify the URL root that contains GCC option documentation. The @var{url}
+should end with a @code{/} character.
+
+The default value is @uref{https://gcc.gnu.org/onlinedocs/,,https://gcc.gnu.org/onlinedocs/}.
+
+@item --with-changes-root-url=@var{url}
+Specify the URL root that contains information about changes in GCC
+releases like @code{gcc-@var{version}/changes.html}.
+The @var{url} should end with a @code{/} character.
+
+The default value is @uref{https://gcc.gnu.org/,,https://gcc.gnu.org/}.
+
@end table
@heading Target specification
diff --git a/gcc/opts.c b/gcc/opts.c
index 12c0098f6b8..c212a1a57dc 100644
--- a/gcc/opts.c
+++ b/gcc/opts.c
@@ -3190,16 +3190,6 @@ get_option_url (diagnostic_context *, int option_index)
return NULL;
}
-/* Given "gcc-10/changes.html#foobar", return that URL under
- CHANGES_ROOT_URL (see --with-changes-root-url).
- The caller is responsible for freeing the returned string. */
-
-char *
-get_changes_url (const char *str)
-{
- return concat (CHANGES_ROOT_URL, str, NULL);
-}
-
#if CHECKING_P
namespace selftest {
diff --git a/gcc/opts.h b/gcc/opts.h
index b9c535049d2..8f594b46e33 100644
--- a/gcc/opts.h
+++ b/gcc/opts.h
@@ -464,7 +464,6 @@ extern void parse_options_from_collect_gcc_options (const char *, obstack *,
int *);
extern void prepend_xassembler_to_collect_as_options (const char *, obstack *);
-extern char *get_changes_url (const char *);
/* Set OPTION in OPTS to VALUE if the option is not set in OPTS_SET. */