From e33a1eae25b8a8744db2fea72e739d64799ca61f Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Thu, 30 Apr 2020 11:49:40 +0200 Subject: [PATCH] --with-{documentation,changes}-root-url tweaks > , CHANGES_URL ("gcc-10/changes.html#empty_base"); > > where the macro would just use preprocessor string concatenation? Ok, the following patch implements it (doesn't introduce a separate macro and just uses CHANGES_ROOT_URL "gcc-10/changes.html#empty_base"), in addition adds the documentation Joseph requested. 2020-04-30 Jakub Jelinek * 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. --- gcc/ChangeLog | 23 +++++++++++++++++++++++ gcc/Makefile.in | 3 --- gcc/config.in | 12 ++++++++++++ gcc/config/aarch64/aarch64.c | 4 ++-- gcc/config/arm/arm.c | 4 ++-- gcc/config/rs6000/rs6000-call.c | 5 ++--- gcc/config/s390/s390.c | 6 ++---- gcc/configure | 22 ++++++++++++++-------- gcc/configure.ac | 14 ++++++++------ gcc/doc/install.texi | 13 +++++++++++++ gcc/opts.c | 10 ---------- gcc/opts.h | 1 - 12 files changed, 78 insertions(+), 39 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3769a91..5b69334 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,26 @@ +2020-04-30 Jakub Jelinek + + * 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 PR target/57002 diff --git a/gcc/Makefile.in b/gcc/Makefile.in index 85f30bf..543b477 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 01fb18d..809e7b2 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 c1a050f..409ca8d 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 29f2a0c..b169250 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 4e6dd34..7621d6f 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 40281e8..1833227 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 c8fb7a8..f7030a2 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 330e328..12297b7 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 39ae068..3c25a22 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 12c0098..c212a1a 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 b9c5350..8f594b4 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. */ -- 2.7.4