aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2017-01-17 10:38:48 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2017-01-17 10:38:48 +0100
commit3c36aa6ba2be894d4092a6ce8129d39ef846c964 (patch)
treecc0e0034b0345bc500f0910812bc430e4df80e30 /gcc
parent12314dc98976f0dc987ec8081e4672b76507e46e (diff)
downloadgcc-3c36aa6ba2be894d4092a6ce8129d39ef846c964.zip
gcc-3c36aa6ba2be894d4092a6ce8129d39ef846c964.tar.gz
gcc-3c36aa6ba2be894d4092a6ce8129d39ef846c964.tar.bz2
re PR other/79046 (g++ -print-file-name=plugin uses full version number in path)
PR other/79046 * configure: Regenerated. config/ * acx.m4 (GCC_BASE_VER): New m4 function. (ACX_TOOL_DIRS): Require GCC_BASE_VER, for --with-gcc-major-version-only use just major number from BASE-VER. gcc/ * configure.ac: Add GCC_BASE_VER. * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s). (gcc.o): Depend on $(BASEVER). * common.opt (dumpfullversion): New option. * gcc.c (driver_handle_option): Handle OPT_dumpfullversion. * doc/invoke.texi: Document -dumpfullversion. * doc/install.texi: Document --with-gcc-major-version-only. * configure: Regenerated. libatomic/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * testsuite/Makefile.in: Regenerated. * configure: Regenerated. * Makefile.in: Regenerated. libgomp/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * testsuite/Makefile.in: Regenerated. * configure: Regenerated. * Makefile.in: Regenerated. libgcc/ * configure.ac: Add GCC_BASE_VER. * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * configure: Regenerated. libssp/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * configure: Regenerated. * Makefile.in: Regenerated. liboffloadmic/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * aclocal.m4: Include ../config/acx.m4. * configure: Regenerated. * Makefile.in: Regenerated. libquadmath/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * configure: Regenerated. * Makefile.in: Regenerated. libmpx/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * configure: Regenerated. * Makefile.in: Regenerated. libada/ * configure.ac: Add GCC_BASE_VER. * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * configure: Regenerated. lto-plugin/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * configure: Regenerated. * Makefile.in: Regenerated. libitm/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * testsuite/Makefile.in: Regenerated. * configure: Regenerated. * Makefile.in: Regenerated. fixincludes/ * configure.ac: Add GCC_BASE_VER. * Makefile.in (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * configure: Regenerated. libcilkrts/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * aclocal.m4: Include ../config/acx.m4. * configure: Regenerated. * Makefile.in: Regenerated. libcc1/ * configure.ac: Add GCC_BASE_VER. For --with-gcc-major-version-only use just major number from BASE-VER. * configure: Regenerated. * Makefile.in: Regenerated. libobjc/ * configure.ac: Add GCC_BASE_VER. * Makefile.in (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * configure: Regenerated. libstdc++-v3/ * configure.ac: Add GCC_BASE_VER. * fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * po/Makefile.in: Regenerated. * libsupc++/Makefile.in: Regenerated. * testsuite/Makefile.in: Regenerated. * src/Makefile.in: Regenerated. * configure: Regenerated. * Makefile.in: Regenerated. * include/Makefile.in: Regenerated. * doc/Makefile.in: Regenerated. * python/Makefile.in: Regenerated. * src/c++11/Makefile.in: Regenerated. * src/c++98/Makefile.in: Regenerated. * src/filesystem/Makefile.in: Regenerated. libvtv/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * testsuite/Makefile.in: Regenerated. * configure: Regenerated. * Makefile.in: Regenerated. libsanitizer/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * libbacktrace/Makefile.in: Regenerated. * interception/Makefile.in: Regenerated. * asan/Makefile.in: Regenerated. * ubsan/Makefile.in: Regenerated. * configure: Regenerated. * sanitizer_common/Makefile.in: Regenerated. * lsan/Makefile.in: Regenerated. * Makefile.in: Regenerated. * tsan/Makefile.in: Regenerated. libgfortran/ * configure.ac: Add GCC_BASE_VER. * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to get version from BASE-VER file. * configure: Regenerated. * Makefile.in: Regenerated. From-SVN: r244521
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog14
-rw-r--r--gcc/Makefile.in5
-rw-r--r--gcc/common.opt3
-rwxr-xr-xgcc/configure23
-rw-r--r--gcc/configure.ac3
-rw-r--r--gcc/doc/install.texi4
-rw-r--r--gcc/doc/invoke.texi15
-rw-r--r--gcc/gcc.c4
8 files changed, 64 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6d443fc..bef211c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,17 @@
+2017-01-17 Jakub Jelinek <jakub@redhat.com>
+
+ PR other/79046
+ * configure.ac: Add GCC_BASE_VER.
+ * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
+ version from BASE-VER file.
+ (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
+ (gcc.o): Depend on $(BASEVER).
+ * common.opt (dumpfullversion): New option.
+ * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
+ * doc/invoke.texi: Document -dumpfullversion.
+ * doc/install.texi: Document --with-gcc-major-version-only.
+ * configure: Regenerated.
+
2017-01-17 Richard Biener <rguenther@suse.de>
PR tree-optimization/71433
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 59fe4aa..7a7e27a 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -856,7 +856,7 @@ else
REVISION_c := $(shell cat $(REVISION))
endif
-version := $(BASEVER_c)
+version := $(shell @get_gcc_base_ver@ $(BASEVER))
PATCHLEVEL_c := \
$(shell echo $(BASEVER_c) | sed -e 's/^[0-9]*\.[0-9]*\.\([0-9]*\)$$/\1/')
@@ -2124,7 +2124,8 @@ DRIVER_DEFINES = \
$(if $(SHLIB),$(if $(filter yes,@enable_shared@),-DENABLE_SHARED_LIBGCC)) \
-DCONFIGURE_SPECS="\"@CONFIGURE_SPECS@\""
-CFLAGS-gcc.o += $(DRIVER_DEFINES)
+CFLAGS-gcc.o += $(DRIVER_DEFINES) -DBASEVER=$(BASEVER_s)
+gcc.o: $(BASEVER)
specs.h : s-specs ; @true
s-specs : Makefile
diff --git a/gcc/common.opt b/gcc/common.opt
index 693b743..ad6baa3 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -849,6 +849,9 @@ Driver
dumpversion
Driver
+dumpfullversion
+Driver
+
e
Driver Joined Separate
diff --git a/gcc/configure b/gcc/configure
index 60cb979..c9e43fb 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -734,6 +734,7 @@ INCINTL
LIBINTL_DEP
LIBINTL
USE_NLS
+get_gcc_base_ver
extra_opt_files
extra_modes_file
NATIVE_SYSTEM_HEADER_DIR
@@ -918,6 +919,7 @@ with_multilib_list
enable_rpath
with_libiconv_prefix
enable_sjlj_exceptions
+with_gcc_major_version_only
enable_secureplt
enable_leading_mingw64_underscores
enable_cld
@@ -1721,6 +1723,8 @@ Optional Packages:
--with-gnu-ld assume the C compiler uses GNU ld default=no
--with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib
--without-libiconv-prefix don't search for libiconv in includedir and libdir
+ --with-gcc-major-version-only
+ use only GCC major number in filesystem paths
--with-pic try to use only PIC/non-PIC objects [default=use
both]
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
@@ -11860,6 +11864,21 @@ static struct plugin_gcc_version gcc_version = {basever, datestamp,
configuration_arguments};
EOF
+# Determine what GCC version number to use in filesystem paths.
+
+ get_gcc_base_ver="cat"
+
+# Check whether --with-gcc-major-version-only was given.
+if test "${with_gcc_major_version_only+set}" = set; then :
+ withval=$with_gcc_major_version_only; if test x$with_gcc_major_version_only = xyes ; then
+ get_gcc_base_ver="sed -e 's/^\([0-9]*\).*\$\$/\1/'"
+ fi
+
+fi
+
+
+
+
# Internationalization
# If we haven't got the data from the intl directory,
# assume NLS is disabled.
@@ -18414,7 +18433,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 18417 "configure"
+#line 18436 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -18520,7 +18539,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 18523 "configure"
+#line 18542 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
diff --git a/gcc/configure.ac b/gcc/configure.ac
index b73a807..33f9a0e 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -1794,6 +1794,9 @@ static struct plugin_gcc_version gcc_version = {basever, datestamp,
EOF
changequote([,])dnl
+# Determine what GCC version number to use in filesystem paths.
+GCC_BASE_VER
+
# Internationalization
ZW_GNU_GETTEXT_SISTER_DIR
diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index 4958773..713d225 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -894,6 +894,10 @@ ideas of what it is for. People use it as if it specified where to
install part of GCC@. Perhaps they make this assumption because
installing GCC creates the directory.
+@item --with-gcc-major-version-only
+Specifies that GCC should use only the major number rather than
+@var{major}.@var{minor}.@var{patchlevel} in filesystem paths.
+
@item --with-native-system-header-dir=@var{dirname}
Specifies that @var{dirname} is the directory that contains native system
header files, rather than @file{/usr/include}. This option is most useful
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 99f193e..e0624da 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -529,7 +529,7 @@ Objective-C and Objective-C++ Dialects}.
@item Developer Options
@xref{Developer Options,,GCC Developer Options}.
@gccoptlist{-d@var{letters} -dumpspecs -dumpmachine -dumpversion @gol
--fchecking -fchecking=@var{n} -fdbg-cnt-list @gol
+-dumpfullversion -fchecking -fchecking=@var{n} -fdbg-cnt-list @gol
-fdbg-cnt=@var{counter-value-list} @gol
-fdisable-ipa-@var{pass_name} @gol
-fdisable-rtl-@var{pass_name} @gol
@@ -13772,8 +13772,17 @@ Print the compiler's target machine (for example,
@item -dumpversion
@opindex dumpversion
-Print the compiler version (for example, @code{3.0})---and don't do
-anything else.
+Print the compiler version (for example, @code{3.0}, @code{6.3.0} or @code{7})---and don't do
+anything else. This is the compiler version used in filesystem paths,
+specs, can be depending on how the compiler has been configured just
+a single number (major version), two numbers separated by dot (major and
+minor version) or three numbers separated by dots (major, minor and patchlevel
+version).
+
+@item -dumpfullversion
+@opindex dumpfullversion
+Print the full compiler version, always 3 numbers separated by dots,
+major, minor and patchlevel version.
@item -dumpspecs
@opindex dumpspecs
diff --git a/gcc/gcc.c b/gcc/gcc.c
index 0ed7da9..826b012 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -3778,6 +3778,10 @@ driver_handle_option (struct gcc_options *opts,
printf ("%s\n", spec_machine);
exit (0);
+ case OPT_dumpfullversion:
+ printf ("%s\n", BASEVER);
+ exit (0);
+
case OPT__version:
print_version = 1;