...
 
Commits (144)
.pc
gcc-*.tar.xz
gdc-*.tar.xz
nvptx-newlib-20180424
nvptx-newlib-*.tar.xz
newlib-3.1.0.20181231.tar.gz
newlib-3.1.0.20181231
bin
build
build-*
html
locales
src
stamps
bootstrap-protocol
bootstrap-summary
debian/patches/series
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -89,3 +89,21 @@ libaqbanking34-plugins,
liblhapdf0,
libpythia8,
libxapian30 (<= 1.4.1-1~bpo8+1),
dnsdist (<< 1.3.3-3),
lambda-align (<< 1.0.3-5),
libllvm3.8,
libllvm3.9,
libllvm4.0,
mednafen (<< 1.22.1+dfsg-1),
nghttp2-proxy (<< 1.36.0-2),
osm2pgsql (<< 0.96.0+ds-2),
osmcoastline (<< 2.2.4-1),
osmium-tool (<< 1.10.0-1),
pdns-recursor (<< 4.1.11-1),
poedit (<< 2.2.1-2),
python-pyosmium (<< 2.15.1-1),
python3-pyosmium (<< 2.15.1-1),
seer (<< 1.1.4-2),
libsimgrid3.14,
undertaker (<< 1.6.1-4.2),
libusbguard0 (<< 0.7.4+ds-1),
......@@ -11,7 +11,7 @@ Description: array index out of range in gnatlink
-gnatp, but the test result is wrong.
.
The following program normally raises Constraint_Error, prints FALSE
if compiled with -gnatn, while the expected result is TRUE.
if compiled with -gnatp, while the expected result is TRUE.
.
procedure A is
G : constant String (3 .. 5) := "abc";
......
# DP: remove blanks from target_bit, see https://bugs.debian.org/814978
--- a/src/gcc/testsuite/ada/acats/run_all.sh
+++ b/src/gcc/testsuite/ada/acats/run_all.sh
@@ -130,7 +130,7 @@
exit 1
fi
target_run $dir/support/impbit > $dir/support/impbit.out 2>&1
-target_bit=`cat $dir/support/impbit.out`
+target_bit=`sed -e 's/[ \r]//g' $dir/support/impbit.out`
echo target_bit="$target_bit" >> $dir/acats.log
# Find out a suitable asm statement
......@@ -6,6 +6,8 @@ Description: link libgnat with libatomic on armel
so a better solution is welcome.
.
Please read ada-changes-in-autogen-output.diff about src/Makefile.def.
.
TODO: if this caused by ada-arm.diff, merge the two patches.
Bug-Debian: https://bugs.debian.org/861734
Author: Matthias Klose <doko@debian.org>
Author: Nicolas Boulenguez <nicolas@debian.org>
......@@ -30,7 +32,7 @@ Index: b/src/Makefile.def
dependencies = { module=all-gnattools; on=all-target-libgnatvsn; };
dependencies = { module=all-target-libgnatvsn; on=all-target-libada; };
+dependencies = { module=all-target-libada; on=all-libatomic; };
+dependencies = { module=all-target-libada; on=all-target-libatomic; };
+
// Depending on the specific configuration, the LTO plugin will either use the
// generic libiberty build or the specific build for linker plugins.
......
......@@ -13,8 +13,6 @@ Please update it when necessary.
# quilt refresh --no-timestamps --no-index -pab
# quilt push -a
Index: b/src/Makefile.in
===================================================================
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -1024,6 +1024,8 @@ configure-target: \
......@@ -1568,7 +1566,7 @@ Index: b/src/Makefile.in
configure-target-libgomp: maybe-all-gcc
configure-target-libitm: maybe-all-gcc
configure-target-libatomic: maybe-all-gcc
@@ -57821,8 +58310,12 @@ all-stagetrain-fixincludes: maybe-all-st
@@ -57821,8 +58310,13 @@ all-stagetrain-fixincludes: maybe-all-st
all-stagefeedback-fixincludes: maybe-all-stagefeedback-libiberty
all-stageautoprofile-fixincludes: maybe-all-stageautoprofile-libiberty
all-stageautofeedback-fixincludes: maybe-all-stageautofeedback-libiberty
......@@ -1578,10 +1576,11 @@ Index: b/src/Makefile.in
all-gnattools: maybe-all-target-libstdc++-v3
+all-gnattools: maybe-all-target-libgnatvsn
+all-target-libgnatvsn: maybe-all-target-libada
+all-target-libada: maybe-all-target-libatomic
all-lto-plugin: maybe-all-libiberty
all-stage1-lto-plugin: maybe-all-stage1-libiberty
@@ -58580,6 +59073,8 @@ configure-target-libffi: maybe-all-targe
@@ -58580,6 +59074,8 @@ configure-target-libffi: maybe-all-targe
configure-target-zlib: maybe-all-target-libgcc
configure-target-rda: maybe-all-target-libgcc
configure-target-libada: maybe-all-target-libgcc
......@@ -1590,7 +1589,7 @@ Index: b/src/Makefile.in
configure-target-libgomp: maybe-all-target-libgcc
configure-target-libitm: maybe-all-target-libgcc
configure-target-libatomic: maybe-all-target-libgcc
@@ -58629,6 +59124,10 @@ configure-target-rda: maybe-all-target-n
@@ -58629,6 +59125,10 @@ configure-target-rda: maybe-all-target-n
configure-target-libada: maybe-all-target-newlib maybe-all-target-libgloss
......
......@@ -29,6 +29,7 @@ Description: always call gcc with an explicit target and version
distributions provide no "target-gcc-version".
.
Log for bug 903694 carries regression tests for both bugs.
Forwarded: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87777
Bug-Debian: https://bugs.debian.org/814977
Bug-Debian: https://bugs.debian.org/814978
Bug-Debian: https://bugs.debian.org/856274
......@@ -64,7 +65,7 @@ Author: YunQiang Su <wzssyqa@gmail.com>
-- Writes name of program as invoked to the current output (normally
--- a/src/gcc/ada/osint.adb
+++ b/src/gcc/ada/osint.adb
@@ -2205,51 +2205,52 @@
@@ -2205,51 +2205,51 @@
------------------
function Program_Name (Nam : String; Prog : String) return String_Access is
......@@ -135,9 +136,8 @@ Author: YunQiang Su <wzssyqa@gmail.com>
- -- Create the new program name
+ -- What remains must be the directory part.
+ if 0 < Name_Len
+ and then Name_Buffer (Name_Len) /= '/'
+ and then Name_Buffer (Name_Len) /= ':'
+ and then Name_Buffer (Name_Len) /= Directory_Separator
+ and then not Is_Directory_Separator (Name_Buffer (Name_Len))
+ then
+ Fail ("Osint.Program_Name: must start with " & Prog
+ & " or " & Prefix.all & Prog);
......
......@@ -22,8 +22,6 @@ This patch depends on ada-libgnatvsn.diff.
# DP: This link will be done by /usr/bin/$(host_alias)-gnat*, thus
# DP: the native gnat with the same major version will be required.
Index: b/src/gcc/ada/gcc-interface/Makefile.in
===================================================================
--- a/src/gcc/ada/gcc-interface/Makefile.in
+++ b/src/gcc/ada/gcc-interface/Makefile.in
@@ -1286,6 +1286,11 @@ ifeq ($(strip $(filter-out s390% linux%,
......@@ -218,19 +216,17 @@ Index: b/src/gcc/ada/gcc-interface/Makefile.in
# ??? we need to add the option to support auto-import of arrays/records to
# the GNATLIBFLAGS when this will be supported by GNAT. At this point we will
Index: b/src/gnattools/Makefile.in
===================================================================
--- a/src/gnattools/Makefile.in
+++ b/src/gnattools/Makefile.in
@@ -70,15 +70,21 @@ INCLUDES_FOR_SUBDIR = -iquote . -iquote
ADA_INCLUDES_FOR_SUBDIR = -I. -I$(fsrcdir)/ada
@@ -76,15 +76,21 @@ CXX_LFLAGS = \
-L../../../$(target_noncanonical)/libstdc++-v3/libsupc++/.libs
# Variables for gnattools, native
+rtsdir := $(abspath ../gcc/ada/rts)
+vsndir := $(abspath ../$(target_noncanonical)/libgnatvsn)
TOOLS_FLAGS_TO_PASS_NATIVE= \
"CC=../../xgcc -B../../" \
"CXX=$(CXX)" \
"CXX=../../xg++ -B../../ $(CXX_LFLAGS)" \
"CFLAGS=$(CFLAGS) $(WARN_CFLAGS)" \
- "LDFLAGS=$(LDFLAGS)" \
- "ADAFLAGS=$(ADAFLAGS)" \
......@@ -247,7 +243,7 @@ Index: b/src/gnattools/Makefile.in
"exeext=$(exeext)" \
"fsrcdir=$(fsrcdir)" \
"srcdir=$(fsrcdir)" \
@@ -184,6 +190,10 @@ $(GCC_DIR)/stamp-tools:
@@ -190,6 +196,10 @@ $(GCC_DIR)/stamp-tools:
# to be able to build gnatmake without a version of gnatmake around. Once
# everything has been compiled once, gnatmake can be recompiled with itself
# (see target regnattools)
......@@ -258,7 +254,7 @@ Index: b/src/gnattools/Makefile.in
gnattools-native: $(GCC_DIR)/stamp-tools $(GCC_DIR)/stamp-gnatlib-rts
# gnattools1
$(MAKE) -C $(GCC_DIR)/ada/tools -f ../Makefile \
@@ -192,6 +202,13 @@ gnattools-native: $(GCC_DIR)/stamp-tools
@@ -198,6 +208,13 @@ gnattools-native: $(GCC_DIR)/stamp-tools
# gnattools2
$(MAKE) -C $(GCC_DIR)/ada/tools -f ../Makefile \
$(TOOLS_FLAGS_TO_PASS_NATIVE) common-tools
......
Description: remove -f*-prefix-map options from .ali files
The -f(file|debug|macro)-prefix-map=OLD=NEW options
added by revision 256847
explicitly ask that OLD is never written.
Forwarded: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87972
Author: Nicolas Boulenguez <nicolas@debian.org>
--- a/src/gcc/ada/lib-writ.adb
+++ b/src/gcc/ada/lib-writ.adb
@@ -1223,10 +1223,22 @@ package body Lib.Writ is
-- Write command argument ('A') lines
for A in 1 .. Compilation_Switches.Last loop
- Write_Info_Initiate ('A');
- Write_Info_Char (' ');
- Write_Info_Str (Compilation_Switches.Table (A).all);
- Write_Info_Terminate;
+ -- The -f(file|debug|macro)-prefix-map=OLD=NEW options
+ -- explicitly ask that OLD is never written.
+ declare
+ S : String renames Compilation_Switches.Table (A).all;
+ begin
+ if S'Length < 19 --
+ or else (S (S'First .. S'First + 18) /= "-fdebug-prefix-map="
+ and S (S'First .. S'First + 17) /= "-ffile-prefix-map="
+ and S (S'First .. S'First + 18) /= "-fmacro-prefix-map=")
+ then
+ Write_Info_Initiate ('A');
+ Write_Info_Char (' ');
+ Write_Info_Str (S);
+ Write_Info_Terminate;
+ end if;
+ end;
end loop;
-- Output parameters ('P') line
......@@ -6,8 +6,6 @@ Description: set ALI timestamps from SOURCE_DATE_EPOCH if available.
https://reproducible-builds.org/specs/source-date-epoch/
Author: Nicolas Boulenguez <nicolas@debian.org>
Index: b/src/gcc/ada/ali-util.adb
===================================================================
--- a/src/gcc/ada/ali-util.adb
+++ b/src/gcc/ada/ali-util.adb
@@ -484,8 +484,10 @@ package body ALI.Util is
......@@ -23,8 +21,6 @@ Index: b/src/gcc/ada/ali-util.adb
then
-- If minimal recompilation is in action, replace the stamp
-- of the source file in the table if checksums match.
Index: b/src/gcc/ada/lib-writ.adb
===================================================================
--- a/src/gcc/ada/lib-writ.adb
+++ b/src/gcc/ada/lib-writ.adb
@@ -1552,7 +1552,14 @@ package body Lib.Writ is
......@@ -43,8 +39,6 @@ Index: b/src/gcc/ada/lib-writ.adb
Write_Info_Char (' ');
Write_Info_Str (Get_Hex_String (Source_Checksum (Sind)));
Index: b/src/gcc/ada/osint.adb
===================================================================
--- a/src/gcc/ada/osint.adb
+++ b/src/gcc/ada/osint.adb
@@ -1680,6 +1680,20 @@ package body Osint is
......@@ -68,11 +62,9 @@ Index: b/src/gcc/ada/osint.adb
end Initialize;
------------------
Index: b/src/gcc/ada/osint.ads
===================================================================
--- a/src/gcc/ada/osint.ads
+++ b/src/gcc/ada/osint.ads
@@ -670,6 +670,17 @@ package Osint is
@@ -664,6 +664,17 @@ package Osint is
function Prep_Suffix return String;
-- The suffix used for preprocessed files
......@@ -90,8 +82,6 @@ Index: b/src/gcc/ada/osint.ads
private
Current_Main : File_Name_Type := No_File;
Index: b/src/gcc/ada/libgnat/s-os_lib.adb
===================================================================
--- a/src/gcc/ada/libgnat/s-os_lib.adb
+++ b/src/gcc/ada/libgnat/s-os_lib.adb
@@ -1153,6 +1153,41 @@ package body System.OS_Lib is
......@@ -136,8 +126,6 @@ Index: b/src/gcc/ada/libgnat/s-os_lib.adb
----------------------------------
-- Get_Target_Debuggable_Suffix --
----------------------------------
Index: b/src/gcc/ada/libgnat/s-os_lib.ads
===================================================================
--- a/src/gcc/ada/libgnat/s-os_lib.ads
+++ b/src/gcc/ada/libgnat/s-os_lib.ads
@@ -164,6 +164,13 @@ package System.OS_Lib is
......
......@@ -7,8 +7,6 @@
# !!! Must be applied after ada-link-lib.diff
Index: b/src/libgnatvsn/configure
===================================================================
--- /dev/null
+++ b/src/libgnatvsn/configure
@@ -0,0 +1,34 @@
......@@ -46,8 +44,6 @@ Index: b/src/libgnatvsn/configure
+sed "$sed_script" "$srcdir/Makefile.in" > Makefile
+
+} | tee -a config.log
Index: b/src/libgnatvsn/gnatvsn.gpr.sed
===================================================================
--- /dev/null
+++ b/src/libgnatvsn/gnatvsn.gpr.sed
@@ -0,0 +1,8 @@
......@@ -59,8 +55,6 @@ Index: b/src/libgnatvsn/gnatvsn.gpr.sed
+ for Library_ALI_Dir use "ali_inst_dir";
+ for Externally_Built use "true";
+end Gnatvsn;
Index: b/src/libgnatvsn/Makefile.in
===================================================================
--- /dev/null
+++ b/src/libgnatvsn/Makefile.in
@@ -0,0 +1,161 @@
......@@ -225,8 +219,6 @@ Index: b/src/libgnatvsn/Makefile.in
+ rm -fr obj-static obj-shared
+ rm -f *.ali libgnatvsn* *.adb *.ads *.c *.h gnatvsn.gpr
+ rm -f Makefile config.log
Index: b/src/Makefile.def
===================================================================
--- a/src/Makefile.def
+++ b/src/Makefile.def
@@ -185,6 +185,16 @@ target_modules = { module= libada; no_in
......@@ -255,8 +247,6 @@ Index: b/src/Makefile.def
// Depending on the specific configuration, the LTO plugin will either use the
// generic libiberty build or the specific build for linker plugins.
Index: b/src/configure.ac
===================================================================
--- a/src/configure.ac
+++ b/src/configure.ac
@@ -170,6 +170,7 @@ target_libraries="target-libgcc \
......@@ -276,8 +266,6 @@ Index: b/src/configure.ac
fi
AC_ARG_ENABLE(libssp,
Index: b/src/gcc/ada/gcc-interface/config-lang.in
===================================================================
--- a/src/gcc/ada/gcc-interface/config-lang.in
+++ b/src/gcc/ada/gcc-interface/config-lang.in
@@ -34,7 +34,7 @@ gtfiles="\$(srcdir)/ada/gcc-interface/ad
......@@ -291,7 +279,7 @@ Index: b/src/gcc/ada/gcc-interface/config-lang.in
# Ada is not enabled by default for the time being.
--- a/src/gcc/testsuite/ada/acats/run_acats.sh
+++ b/src/gcc/testsuite/ada/acats/run_acats.sh
@@ -32,6 +32,15 @@
@@ -32,6 +32,15 @@ ADA_INCLUDE_PATH=$BASE/ada/rts
LD_LIBRARY_PATH=$ADA_INCLUDE_PATH:$BASE:$LD_LIBRARY_PATH
ADA_OBJECTS_PATH=$ADA_INCLUDE_PATH
......@@ -309,7 +297,7 @@ Index: b/src/gcc/ada/gcc-interface/config-lang.in
exit 1
--- a/src/gcc/testsuite/lib/gnat.exp
+++ b/src/gcc/testsuite/lib/gnat.exp
@@ -128,8 +128,10 @@
@@ -128,8 +128,10 @@ proc gnat_target_compile { source dest t
set gnat_target_current "[current_target_name]"
if [info exists TOOL_OPTIONS] {
set rtsdir "[get_multilibs ${TOOL_OPTIONS}]/libada"
......@@ -320,7 +308,8 @@ Index: b/src/gcc/ada/gcc-interface/config-lang.in
}
if [info exists TOOL_EXECUTABLE] {
set GNAT_UNDER_TEST "$TOOL_EXECUTABLE"
@@ -140,13 +142,14 @@
@@ -140,14 +142,15 @@ proc gnat_target_compile { source dest t
# gnatlink looks for system.ads itself and has no --RTS option, so
# specify via environment
- setenv ADA_INCLUDE_PATH "$rtsdir/adainclude"
......
Description: when linking an Ada shared library, avoid modifying user soname
In project files, use the exact Library_Version provided, if any, as
the soname of libraries; do not strip minor version numbers
.
GNAT has been announcing the removal of support for GPR projects
since gcc-6.
Gnatlink will then stop being able to link shared libraries.
This probably explains why upstream is not interested in this patch.
Forwarded: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=40025
Author: Ludovic Brenta <lbrenta@debian.org>
Index: b/src/gcc/ada/mlib-tgt-specific-linux.adb
===================================================================
--- a/src/gcc/ada/mlib-tgt-specific-linux.adb
+++ b/src/gcc/ada/mlib-tgt-specific-linux.adb
@@ -50,6 +50,8 @@ package body MLib.Tgt.Specific is
function Is_Archive_Ext (Ext : String) return Boolean;
+ function Library_Major_Minor_Id_Supported return Boolean;
+
---------------------------
-- Build_Dynamic_Library --
---------------------------
@@ -142,7 +144,18 @@ package body MLib.Tgt.Specific is
return Ext = ".a" or else Ext = ".so";
end Is_Archive_Ext;
+ --------------------------------------
+ -- Library_Major_Minor_Id_Supported --
+ --------------------------------------
+
+ function Library_Major_Minor_Id_Supported return Boolean is
+ begin
+ return False;
+ end Library_Major_Minor_Id_Supported;
+
begin
Build_Dynamic_Library_Ptr := Build_Dynamic_Library'Access;
Is_Archive_Ext_Ptr := Is_Archive_Ext'Access;
+ Library_Major_Minor_Id_Supported_Ptr :=
+ Library_Major_Minor_Id_Supported'Access;
end MLib.Tgt.Specific;
Index: b/src/gcc/ada/mlib.adb
===================================================================
--- a/src/gcc/ada/mlib.adb
+++ b/src/gcc/ada/mlib.adb
@@ -30,6 +30,7 @@ with System;
with Opt;
with Output; use Output;
+with MLib.Tgt;
with MLib.Utl; use MLib.Utl;
with Prj.Com;
@@ -393,7 +394,11 @@ package body MLib is
-- Major_Id_Name --
-------------------
- function Major_Id_Name
+ function Major_Id_Name_If_Supported
+ (Lib_Filename : String;
+ Lib_Version : String)
+ return String;
+ function Major_Id_Name_If_Supported
(Lib_Filename : String;
Lib_Version : String)
return String
@@ -447,6 +452,19 @@ package body MLib is
else
return "";
end if;
+ end Major_Id_Name_If_Supported;
+
+ function Major_Id_Name
+ (Lib_Filename : String;
+ Lib_Version : String)
+ return String
+ is
+ begin
+ if MLib.Tgt.Library_Major_Minor_Id_Supported then
+ return Major_Id_Name_If_Supported (Lib_Filename, Lib_Version);
+ else
+ return "";
+ end if;
end Major_Id_Name;
-------------------------------
......@@ -17,8 +17,6 @@ Author: Ludovic Brenta <lbrenta@debian.org>
Author: Nicolas Boulenguez <nicolas@debian.org>
Author: Matthias Klose <doko@debian.org>
Index: b/src/gcc/ada/gcc-interface/config-lang.in
===================================================================
--- a/src/gcc/ada/gcc-interface/config-lang.in
+++ b/src/gcc/ada/gcc-interface/config-lang.in
@@ -35,7 +35,7 @@ gtfiles="\$(srcdir)/ada/gcc-interface/ad
......@@ -30,8 +28,6 @@ Index: b/src/gcc/ada/gcc-interface/config-lang.in
# Ada is not enabled by default for the time being.
build_by_default=no
Index: b/src/gcc/ada/link.c
===================================================================
--- a/src/gcc/ada/link.c
+++ b/src/gcc/ada/link.c
@@ -107,9 +107,9 @@ const char *__gnat_default_libgcc_subdir
......@@ -60,8 +56,6 @@ Index: b/src/gcc/ada/link.c
int __gnat_link_max = 8192;
unsigned char __gnat_objlist_file_supported = 1;
const char *__gnat_object_library_extension = ".a";
Index: b/src/libada/Makefile.in
===================================================================
--- a/src/libada/Makefile.in
+++ b/src/libada/Makefile.in
@@ -78,10 +78,10 @@ ADA_RTS_SUBDIR=./rts$(subst /,_,$(MULTIS
......@@ -77,8 +71,6 @@ Index: b/src/libada/Makefile.in
"GNATLIBCFLAGS=$(GNATLIBCFLAGS) $(MULTIFLAGS)" \
"GNATLIBCFLAGS_FOR_C=$(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS)" \
"PICFLAG_FOR_TARGET=$(PICFLAG)" \
Index: b/src/Makefile.def
===================================================================
--- a/src/Makefile.def
+++ b/src/Makefile.def
@@ -122,7 +122,16 @@ host_modules= { module= libtermcap; no_c
......@@ -125,8 +117,6 @@ Index: b/src/Makefile.def
dependencies = { module=all-gnattools; on=all-target-libada; };
dependencies = { module=all-gnattools; on=all-target-libstdc++-v3; };
Index: b/src/configure.ac
===================================================================
--- a/src/configure.ac
+++ b/src/configure.ac
@@ -142,6 +142,11 @@ host_libs="intl libiberty opcodes bfd re
......@@ -149,8 +139,6 @@ Index: b/src/configure.ac
target-libgo"
# these tools are built using the target libraries, and are intended to
Index: b/src/gcc/ada/gcc-interface/Make-lang.in
===================================================================
--- a/src/gcc/ada/gcc-interface/Make-lang.in
+++ b/src/gcc/ada/gcc-interface/Make-lang.in
@@ -45,7 +45,7 @@ RMDIR = rm -rf
......@@ -173,15 +161,15 @@ Index: b/src/gcc/ada/gcc-interface/Make-lang.in
GCC_LLINK=$(LLINKER) $(GCC_LINKERFLAGS) $(LDFLAGS)
--- a/src/gcc/testsuite/lib/gnat.exp
+++ b/src/gcc/testsuite/lib/gnat.exp
@@ -115,6 +115,7 @@
@@ -115,6 +115,7 @@ proc gnat_target_compile { source dest t
global TOOL_OPTIONS
global gnat_target_current
global TEST_ALWAYS_FLAGS
+ global ld_library_path
# dg-require-effective-target tests must be compiled as C.
if [ string match "*.c" $source ] then {
@@ -140,6 +142,11 @@
@@ -144,6 +145,11 @@ proc gnat_target_compile { source dest t
# Always log so compilations can be repeated manually.
verbose -log "ADA_INCLUDE_PATH=$rtsdir/adainclude"
verbose -log "ADA_OBJECTS_PATH=$rtsdir/adainclude"
......
Description: when linking Ada shared libraries, list dependencies after objects
In gnatlink, pass the options and libraries after objects to the
linker to avoid link failures with --as-needed.
This option is activated by default on the GNU gold linker.
.
GNAT has been announcing the removal of support for GPR projects
since gcc-6.
Gnatlink will then stop being able to link shared libraries.
This probably explains why upstream is not interested in this patch.
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680292
Author: Matthias Klose <doko@debian.org>
Forwarded: http://gcc.gnu.org/ml/gcc-patches/2013-04/msg01132.html
--- a/src/gcc/ada/mlib-tgt-specific-linux.adb
+++ b/src/gcc/ada/mlib-tgt-specific-linux.adb
@@ -81,19 +81,54 @@
Version_Arg : String_Access;
Symbolic_Link_Needed : Boolean := False;
+ N_Options : Argument_List := Options;
+ Options_Last : Natural := N_Options'Last;
+ -- After moving -lxxx to Options_2, N_Options up to index Options_Last
+ -- will contain the Options to pass to MLib.Utl.Gcc.
+
+ Real_Options_2 : Argument_List (1 .. Options'Length);
+ Real_Options_2_Last : Natural := 0;
+ -- Real_Options_2 up to index Real_Options_2_Last will contain the
+ -- Options_2 to pass to MLib.Utl.Gcc.
+
begin
if Opt.Verbose_Mode then
Write_Str ("building relocatable shared library ");
Write_Line (Lib_Path);
end if;
+ -- Move all -lxxx to Options_2
+
+ declare
+ Index : Natural := N_Options'First;
+ Arg : String_Access;
+
+ begin
+ while Index <= Options_Last loop
+ Arg := N_Options (Index);
+
+ if Arg'Length > 2
+ and then Arg (Arg'First .. Arg'First + 1) = "-l"
+ then
+ Real_Options_2_Last := Real_Options_2_Last + 1;
+ Real_Options_2 (Real_Options_2_Last) := Arg;
+ N_Options (Index .. Options_Last - 1) :=
+ N_Options (Index + 1 .. Options_Last);
+ Options_Last := Options_Last - 1;
+
+ else
+ Index := Index + 1;
+ end if;
+ end loop;
+ end;
+
if Lib_Version = "" then
Utl.Gcc
(Output_File => Lib_Path,
Objects => Ofiles,
- Options => Options,
+ Options => N_Options (N_Options'First .. Options_Last),
Driver_Name => Driver_Name,
- Options_2 => No_Argument_List);
+ Options_2 => Real_Options_2 (1 .. Real_Options_2_Last));
else
declare
@@ -111,18 +146,20 @@
Utl.Gcc
(Output_File => Lib_Version,
Objects => Ofiles,
- Options => Options & Version_Arg,
+ Options => N_Options (N_Options'First .. Options_Last)
+ & Version_Arg,
Driver_Name => Driver_Name,
- Options_2 => No_Argument_List);
+ Options_2 => Real_Options_2 (1 .. Real_Options_2_Last));
Symbolic_Link_Needed := Lib_Version /= Lib_Path;
else
Utl.Gcc
(Output_File => Lib_Dir & Directory_Separator & Lib_Version,
Objects => Ofiles,
- Options => Options & Version_Arg,
+ Options => N_Options (N_Options'First .. Options_Last)
+ & Version_Arg,
Driver_Name => Driver_Name,
- Options_2 => No_Argument_List);
+ Options_2 => Real_Options_2 (1 .. Real_Options_2_Last));
Symbolic_Link_Needed :=
Lib_Dir & Directory_Separator & Lib_Version /= Lib_Path;
end if;
# DP: Fix perl shebang for the gnathtml binary.
--- a/src/gcc/ada/gnathtml.pl
+++ b/src/gcc/ada/gnathtml.pl
@@ -1,4 +1,4 @@
-#! /usr/bin/env perl
+#! /usr/bin/perl
#-----------------------------------------------------------------------------
#- --
This diff is collapsed.
Description: Display subprocess command lines when building Ada.
The log can be a page longer if it helps debugging.
Forwarded: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87778
Author: Nicolas Boulenguez <nicolas@debian.org>
Index: b/src/gcc/ada/Make-generated.in
......
......@@ -4,11 +4,9 @@
gcc/config/alpha/alpha.c | 7 +++----
1 files changed, 3 insertions(+), 4 deletions(-)
Index: b/src/gcc/config/alpha/alpha.c
===================================================================
--- a/src/gcc/config/alpha/alpha.c
+++ b/src/gcc/config/alpha/alpha.c
@@ -9504,7 +9504,7 @@ alpha_file_start (void)
@@ -9536,7 +9536,7 @@ alpha_file_start (void)
fputs ("\t.set nomacro\n", asm_out_file);
if (TARGET_SUPPORT_ARCH | TARGET_BWX | TARGET_MAX | TARGET_FIX | TARGET_CIX)
{
......@@ -17,7 +15,7 @@ Index: b/src/gcc/config/alpha/alpha.c
if (alpha_cpu == PROCESSOR_EV6 || TARGET_FIX || TARGET_CIX)
arch = "ev6";
@@ -9514,10 +9514,9 @@ alpha_file_start (void)
@@ -9546,10 +9546,9 @@ alpha_file_start (void)
arch = "ev56";
else if (alpha_cpu == PROCESSOR_EV5)
arch = "ev5";
......
# DP: Set MULTILIB_DEFAULTS for ARM multilib builds
Index: b/src/gcc/config.gcc
===================================================================
--- a/src/gcc/config.gcc
+++ b/src/gcc/config.gcc
@@ -3862,10 +3862,18 @@ case "${target}" in
@@ -3865,10 +3865,18 @@ case "${target}" in
done
case "$with_float" in
......@@ -25,7 +23,7 @@ Index: b/src/gcc/config.gcc
*)
echo "Unknown floating point type used in --with-float=$with_float" 1>&2
exit 1
@@ -3899,6 +3907,9 @@ case "${target}" in
@@ -3902,6 +3910,9 @@ case "${target}" in
"" \
| arm | thumb )
#OK
......@@ -35,8 +33,6 @@ Index: b/src/gcc/config.gcc
;;
*)
echo "Unknown mode used in --with-mode=$with_mode"
Index: b/src/gcc/config/arm/linux-eabi.h
===================================================================
--- a/src/gcc/config/arm/linux-eabi.h
+++ b/src/gcc/config/arm/linux-eabi.h
@@ -37,7 +37,21 @@
......
# DP: Turn on -Wformat -Wformat-security by default for C, C++, ObjC, ObjC++.
Index: b/src/gcc/doc/invoke.texi
===================================================================
--- a/src/gcc/doc/invoke.texi
+++ b/src/gcc/doc/invoke.texi
@@ -4119,6 +4119,11 @@ value is used and that might result in t
sufficient length or magnitude.
@end table
+NOTE: In Ubuntu 8.10 and later versions this option is enabled by default
+for C, C++, ObjC, ObjC++. To disable, use @option{-Wno-format-security},
+or disable all format warnings with @option{-Wformat=0}. To make format
+security warnings fatal, specify @option{-Werror=format-security}.
+
@item -Wformat-y2k
@opindex Wformat-y2k
@opindex Wno-format-y2k
Index: b/src/gcc/gcc.c
===================================================================
--- a/src/gcc/gcc.c
+++ b/src/gcc/gcc.c
@@ -867,11 +867,14 @@ proper position among the other output f
#define LINK_GCC_C_SEQUENCE_SPEC "%G %L %G"
#endif
+/* no separate spec, just shove it into the ssp default spec */
+#define FORMAT_SECURITY_SPEC "%{!Wformat:%{!Wformat=2:%{!Wformat=0:%{!Wall:-Wformat} %{!Wno-format-security:-Wformat-security}}}}"
+
#ifndef SSP_DEFAULT_SPEC
#if defined(TARGET_LIBC_PROVIDES_SSP) && !defined(ACCEL_COMPILER)
-#define SSP_DEFAULT_SPEC "%{!fno-stack-protector:%{!fstack-protector-all:%{!ffreestanding:%{!nostdlib:-fstack-protector}}}}"
+#define SSP_DEFAULT_SPEC "%{!fno-stack-protector:%{!fstack-protector-all:%{!ffreestanding:%{!nostdlib:-fstack-protector}}}} " FORMAT_SECURITY_SPEC
#else
-#define SSP_DEFAULT_SPEC ""
+#define SSP_DEFAULT_SPEC FORMAT_SECURITY_SPEC
#endif
#endif
# DP: Default to -fstack-protector-strong starting with Ubuntu 14.10.
# DP: Document distro specific compiler flags turned on by default
Index: b/src/gcc/gcc.c
===================================================================
--- a/src/gcc/gcc.c
+++ b/src/gcc/gcc.c
@@ -872,7 +872,7 @@ proper position among the other output f
#ifndef SSP_DEFAULT_SPEC
#if defined(TARGET_LIBC_PROVIDES_SSP) && !defined(ACCEL_COMPILER)
-#define SSP_DEFAULT_SPEC "%{!fno-stack-protector:%{!fstack-protector-all:%{!ffreestanding:%{!nostdlib:-fstack-protector}}}} " FORMAT_SECURITY_SPEC
+#define SSP_DEFAULT_SPEC "%{!fno-stack-protector:%{!fstack-protector-all:%{!ffreestanding:%{!nostdlib:%{!fstack-protector:-fstack-protector-strong}}}}} " FORMAT_SECURITY_SPEC
#else
#define SSP_DEFAULT_SPEC FORMAT_SECURITY_SPEC
#endif
Index: b/src/gcc/doc/invoke.texi
===================================================================
--- a/src/gcc/doc/invoke.texi
+++ b/src/gcc/doc/invoke.texi
@@ -9549,6 +9549,11 @@ branch target registers within any basic
@@ -10121,6 +10121,11 @@ branch target registers within any basic
Optimize the prologue of variadic argument functions with respect to usage of
those arguments.
......@@ -29,7 +14,7 @@ Index: b/src/gcc/doc/invoke.texi
@item -fsection-anchors
@opindex fsection-anchors
Try to reduce the number of symbolic address calculations by using
@@ -10151,13 +10156,13 @@ value of a shared integer constant. The
@@ -10739,6 +10744,9 @@ value of a shared integer constant. The
The minimum size of buffers (i.e.@: arrays) that receive stack smashing
protection when @option{-fstack-protection} is used.
......@@ -39,21 +24,25 @@ Index: b/src/gcc/doc/invoke.texi
@item min-size-for-stack-sharing
The minimum size of variables taking part in stack slot sharing when not
optimizing. The default value is 32.
@@ -11865,6 +11873,10 @@ which functions and calls should be skip
Currently the x86 GNU/Linux target provides an implementation based
on Intel Control-flow Enforcement Technology (CET).
-This default before Ubuntu 10.10 was "8". Currently it is "4", to increase
-the number of functions protected by the stack protector.
-
@item max-jump-thread-duplication-stmts
Maximum number of statements allowed in a block that needs to be
duplicated when threading jumps.
@@ -11162,10 +11167,6 @@ functions with buffers larger than 8 byt
when a function is entered and then checked when the function exits.
If a guard check fails, an error message is printed and the program exits.
+NOTE: In Ubuntu 19.10 and later versions, @option{-fcf-protection}
+is enabled by default for C, C++, ObjC, ObjC++, if none of
+@option{-fno-cf-protection} nor @option{-fcf-protection=*} are found.
+
@item -fstack-protector
@opindex fstack-protector
Emit extra code to check for buffer overflows, such as stack smashing
@@ -11947,6 +11959,10 @@ allocations. @option{-fstack-clash-prot
protection for static stack allocations if the target supports
@option{-fstack-check=specific}.
-NOTE: In Ubuntu 6.10 and later versions this option is enabled by default
-for C, C++, ObjC, ObjC++, if none of @option{-fno-stack-protector},
-@option{-nostdlib}, nor @option{-ffreestanding} are found.
-
@item -fstack-protector-all
@opindex fstack-protector-all
Like @option{-fstack-protector} except that all functions are protected.
+NOTE: In Ubuntu 19.10 and later versions,
+@option{-fstack-clash-protection} is enabled by default for C,
+C++, ObjC, ObjC++, unless @option{-fno-stack-clash-protection} is found.
+
@item -fstack-limit-register=@var{reg}
@itemx -fstack-limit-symbol=@var{sym}
@itemx -fno-stack-limit
......@@ -17,8 +17,6 @@ libgomp/
* target.c (gomp_load_plugin_for_device): If a plugin can't be
dlopened, assume it has no devices silently.
Index: b/src/gcc/gcc.c
===================================================================
--- a/src/gcc/gcc.c
+++ b/src/gcc/gcc.c
@@ -291,6 +291,10 @@ static const char *spec_host_machine = D
......@@ -53,8 +51,6 @@ Index: b/src/gcc/gcc.c
}
free (offload_targets);
Index: b/src/gcc/lto-wrapper.c
===================================================================
--- a/src/gcc/lto-wrapper.c
+++ b/src/gcc/lto-wrapper.c
@@ -52,6 +52,7 @@ along with GCC; see the file COPYING3.
......@@ -65,7 +61,7 @@ Index: b/src/gcc/lto-wrapper.c
enum lto_mode_d {
LTO_MODE_NONE, /* Not doing LTO. */
@@ -808,8 +809,10 @@ compile_images_for_offload_targets (unsi
@@ -871,8 +872,10 @@ compile_images_for_offload_targets (unsi
if (!target_names)
return;
unsigned num_targets = parse_env_var (target_names, &names, NULL);
......@@ -76,7 +72,7 @@ Index: b/src/gcc/lto-wrapper.c
const char *compiler_path = getenv ("COMPILER_PATH");
if (!compiler_path)
goto out;
@@ -822,18 +825,32 @@ compile_images_for_offload_targets (unsi
@@ -885,18 +888,32 @@ compile_images_for_offload_targets (unsi
/* HSA does not use LTO-like streaming and a different compiler, skip
it. */
if (strcmp (names[i], "hsa") == 0)
......@@ -112,8 +108,6 @@ Index: b/src/gcc/lto-wrapper.c
out:
free_array_of_ptrs ((void **) names, num_targets);
}
Index: b/src/libgomp/target.c
===================================================================
--- a/src/libgomp/target.c
+++ b/src/libgomp/target.c
@@ -2514,7 +2514,7 @@ gomp_load_plugin_for_device (struct gomp
......
# DP: Allow to use lld with -fuse-ld=ld.lld
Index: b/src/gcc/collect2.c
===================================================================
--- a/src/gcc/collect2.c
+++ b/src/gcc/collect2.c
@@ -831,6 +831,7 @@ main (int argc, char **argv)
......@@ -50,8 +48,6 @@ Index: b/src/gcc/collect2.c
ld1--;
ld2--;
}
Index: b/src/gcc/common.opt
===================================================================
--- a/src/gcc/common.opt
+++ b/src/gcc/common.opt
@@ -2712,9 +2712,13 @@ Common Driver Negative(fuse-ld=gold)
......@@ -69,11 +65,9 @@ Index: b/src/gcc/common.opt
fuse-linker-plugin
Common Undocumented Var(flag_use_linker_plugin)
Index: b/src/gcc/opts.c
===================================================================
--- a/src/gcc/opts.c
+++ b/src/gcc/opts.c
@@ -2472,6 +2472,7 @@ common_handle_option (struct gcc_options
@@ -2481,6 +2481,7 @@ common_handle_option (struct gcc_options
case OPT_fuse_ld_bfd:
case OPT_fuse_ld_gold:
......
# DP: Report an ICE to apport (if apport is available
# DP: and the environment variable GCC_NOAPPORT is not set)
Index: b/src/gcc/gcc.c
===================================================================
--- a/src/gcc/gcc.c
+++ b/src/gcc/gcc.c
@@ -6987,6 +6987,16 @@ do_report_bug (const char **new_argv, co
@@ -6968,6 +6968,16 @@ do_report_bug (const char **new_argv, co
fflush(stderr);
free(cmd);
}
......
# DP: For ICEs, dump the preprocessed source file to stderr
# DP: when in a distro build environment.
Index: b/src/gcc/gcc.c
===================================================================
--- a/src/gcc/gcc.c
+++ b/src/gcc/gcc.c
@@ -3206,7 +3206,8 @@ execute (void)
@@ -3187,7 +3187,8 @@ execute (void)
/* For ICEs in cc1, cc1obj, cc1plus see if it is
reproducible or not. */
const char *p;
......@@ -15,7 +13,7 @@ Index: b/src/gcc/gcc.c
&& WEXITSTATUS (status) == ICE_EXIT_CODE
&& i == 0
&& (p = strrchr (commands[0].argv[0], DIR_SEPARATOR))
@@ -6969,8 +6970,23 @@ do_report_bug (const char **new_argv, co
@@ -6950,8 +6951,23 @@ do_report_bug (const char **new_argv, co
if (status == ATTEMPT_STATUS_SUCCESS)
{
......
This diff is collapsed.
# DP : Don't add the __LINARO_RELEASE__ and __LINARO_SPIN__ macros for distro builds.
Index: b/src/gcc/cppbuiltin.c
===================================================================
--- a/src/gcc/cppbuiltin.c
+++ b/src/gcc/cppbuiltin.c
@@ -53,41 +53,18 @@ parse_basever (int *major, int *minor, i
......@@ -47,11 +45,9 @@ Index: b/src/gcc/cppbuiltin.c
cpp_define_formatted (pfile, "__ATOMIC_RELAXED=%d", MEMMODEL_RELAXED);
cpp_define_formatted (pfile, "__ATOMIC_SEQ_CST=%d", MEMMODEL_SEQ_CST);
cpp_define_formatted (pfile, "__ATOMIC_ACQUIRE=%d", MEMMODEL_ACQUIRE);
Index: b/src/gcc/Makefile.in
===================================================================
--- a/src/gcc/Makefile.in
+++ b/src/gcc/Makefile.in
@@ -845,12 +845,10 @@ BASEVER := $(srcdir)/BASE-VER # 4.x
@@ -854,12 +854,10 @@ BASEVER := $(srcdir)/BASE-VER # 4.x
DEVPHASE := $(srcdir)/DEV-PHASE # experimental, prerelease, ""
DATESTAMP := $(srcdir)/DATESTAMP # YYYYMMDD or empty
REVISION := $(srcdir)/REVISION # [BRANCH revision XXXXXX]
......@@ -64,7 +60,7 @@ Index: b/src/gcc/Makefile.in
ifeq (,$(wildcard $(REVISION)))
REVISION_c :=
@@ -877,7 +875,6 @@ DATESTAMP_s := \
@@ -886,7 +884,6 @@ DATESTAMP_s := \
"\"$(if $(DEVPHASE_c)$(filter-out 0,$(PATCHLEVEL_c)), $(DATESTAMP_c))\""
PKGVERSION_s:= "\"@PKGVERSION@\""
BUGURL_s := "\"@REPORT_BUGS_TO@\""
......@@ -72,7 +68,7 @@ Index: b/src/gcc/Makefile.in
PKGVERSION := @PKGVERSION@
BUGURL_TEXI := @REPORT_BUGS_TEXI@
@@ -2804,9 +2801,8 @@ PREPROCESSOR_DEFINES = \
@@ -2886,9 +2883,8 @@ PREPROCESSOR_DEFINES = \
-DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc/\" \
@TARGET_SYSTEM_ROOT_DEFINE@
......@@ -84,9 +80,37 @@ Index: b/src/gcc/Makefile.in
CFLAGS-cppdefault.o += $(PREPROCESSOR_DEFINES)
Index: b/src/gcc/LINARO-VERSION
===================================================================
--- a/src/gcc/LINARO-VERSION
+++ /dev/null
@@ -1,1 +0,0 @@
-Snapshot 7.2-2017.09
@@ -1 +0,0 @@
-8.2-2018.08~dev
--- a/src/gcc/testsuite/ChangeLog.arm
+++ b/src/gcc/testsuite/ChangeLog.arm
@@ -3,10 +3,6 @@
* c-c++-common/spec-barrier-1.c: New test.
* c-c++-common/spec-barrier-2.c: New test.
* gcc.dg/spec-barrier-3.c: New test.
-
-2018-08-14 Yvan Roux <yvan.roux@linaro.org>
-
- * gcc.dg/cpp/linaro-macros.c: New test.
Copyright (C) 2018 Free Software Foundation, Inc.
--- a/src/gcc/testsuite/gcc.dg/cpp/linaro-macros.c
+++ /dev/null
@@ -1,14 +0,0 @@
-/* Test __LINARO_RELEASE__ and __LINARO_SPIN__. */
-/* { dg-do compile } */
-
-#if defined(__LINARO_RELEASE__) && __LINARO_RELEASE__ >= 201808
-int i;
-#else
-#error "Bad __LINARO_RELEASE__."
-#endif
-
-#if defined(__LINARO_SPIN__) && __LINARO_SPIN__ >= 0
-int j;
-#else
-#error "Bad __LINARO_SPIN__."
-#endif
# Revert FSF change, already present on the Linaro branch.
Index: gcc/testsuite/gcc.target/aarch64/pr90075.c
===================================================================
--- a/src/gcc/testsuite/gcc.target/aarch64/pr90075.c (revision 270683)
+++ a/src/gcc/testsuite/gcc.target/aarch64/pr90075.c (nonexistent)
@@ -1,21 +0,0 @@
-/* { dg-do compile } */
-/* { dg-additional-options "-O1" } */
-
-typedef struct {
- float one, two;
-} twofloats;
-
-float
-bug (twofloats tf)
-{
- float f1, f2;
- union {
- twofloats tfloats;
- float arr[2];
- } utfloats;
-
- utfloats.tfloats = tf;
- f1 = utfloats.arr[1];
- f2 = __builtin_copysignf (0, f1);
- return f2;
-}
Index: gcc/config/aarch64/iterators.md
===================================================================
--- a/src/gcc/config/aarch64/iterators.md (revision 270683)
+++ a/src/gcc/config/aarch64/iterators.md (revision 270670)
@@ -578,8 +578,7 @@
(define_mode_attr sizen [(QI "8") (HI "16") (SI "32") (DI "64")])
;; Give the ordinal of the MSB in the mode
-(define_mode_attr sizem1 [(QI "#7") (HI "#15") (SI "#31") (DI "#63")
- (HF "#15") (SF "#31") (DF "#63")])
+(define_mode_attr sizem1 [(QI "#7") (HI "#15") (SI "#31") (DI "#63")])
;; Attribute to describe constants acceptable in logical operations
(define_mode_attr lconst [(SI "K") (DI "L")])
@@ -665,7 +664,7 @@
(V8HF "16b") (V2SF "8b")
(V4SF "16b") (V2DF "16b")
(DI "8b") (DF "8b")
- (SI "8b") (SF "8b")])
+ (SI "8b")])
;; Define element mode for each vector mode.
(define_mode_attr VEL [(V8QI "QI") (V16QI "QI") (VNx16QI "QI")
Index: gcc/config/aarch64/aarch64.md
===================================================================
--- a/src/gcc/config/aarch64/aarch64.md (revision 270683)
+++ a/src/gcc/config/aarch64/aarch64.md (revision 270670)
@@ -189,7 +189,6 @@
UNSPEC_CLASTB
UNSPEC_FADDA
UNSPEC_REV_SUBREG
- UNSPEC_COPYSIGN
])
(define_c_enum "unspecv" [
@@ -5428,48 +5427,49 @@
;; LDR d2, #(1 << 63)
;; BSL v2.8b, [y], [x]
;;
-;; or another, equivalent, sequence using one of BSL/BIT/BIF. Because
-;; we expect these operations to nearly always operate on
-;; floating-point values, we do not want the operation to be
-;; simplified into a bit-field insert operation that operates on the
-;; integer side, since typically that would involve three inter-bank
-;; register copies. As we do not expect copysign to be followed by
-;; other logical operations on the result, it seems preferable to keep
-;; this as an unspec operation, rather than exposing the underlying
-;; logic to the compiler.
+;; or another, equivalent, sequence using one of BSL/BIT/BIF.
+;; aarch64_simd_bsldf will select the best suited of these instructions
+;; to generate based on register allocation, and knows how to partially
+;; constant fold based on the values of X and Y, so expand through that.
-(define_expand "copysign<GPF:mode>3"
- [(match_operand:GPF 0 "register_operand")
- (match_operand:GPF 1 "register_operand")
- (match_operand:GPF 2 "register_operand")]
+(define_expand "copysigndf3"
+ [(match_operand:DF 0 "register_operand")
+ (match_operand:DF 1 "register_operand")
+ (match_operand:DF 2 "register_operand")]
"TARGET_FLOAT && TARGET_SIMD"
{
- rtx bitmask = gen_reg_rtx (<V_INT_EQUIV>mode);
- emit_move_insn (bitmask, GEN_INT (HOST_WIDE_INT_M1U
- << (GET_MODE_BITSIZE (<MODE>mode) - 1)));
- emit_insn (gen_copysign<mode>3_insn (operands[0], operands[1], operands[2],
- bitmask));
+ rtx mask = gen_reg_rtx (DImode);
+ emit_move_insn (mask, GEN_INT (HOST_WIDE_INT_1U << 63));
+ emit_insn (gen_aarch64_simd_bsldf (operands[0], mask,
+ operands[2], operands[1]));
DONE;
}
)
-(define_insn "copysign<GPF:mode>3_insn"
- [(set (match_operand:GPF 0 "register_operand" "=w,w,w,r")
- (unspec:GPF [(match_operand:GPF 1 "register_operand" "w,0,w,r")
- (match_operand:GPF 2 "register_operand" "w,w,0,0")
- (match_operand:<V_INT_EQUIV> 3 "register_operand"
- "0,w,w,X")]
- UNSPEC_COPYSIGN))]
+;; As above, but we must first get to a 64-bit value if we wish to use
+;; aarch64_simd_bslv2sf.
+
+(define_expand "copysignsf3"
+ [(match_operand:SF 0 "register_operand")
+ (match_operand:SF 1 "register_operand")
+ (match_operand:SF 2 "register_operand")]
"TARGET_FLOAT && TARGET_SIMD"
- "@
- bsl\\t%0.<Vbtype>, %2.<Vbtype>, %1.<Vbtype>
- bit\\t%0.<Vbtype>, %2.<Vbtype>, %3.<Vbtype>
- bif\\t%0.<Vbtype>, %1.<Vbtype>, %3.<Vbtype>
- bfxil\\t%<w1>0, %<w1>1, #0, <sizem1>"
- [(set_attr "type" "neon_bsl<q>,neon_bsl<q>,neon_bsl<q>,bfm")]
+{
+ rtx v_bitmask = gen_reg_rtx (V2SImode);
+
+ /* Juggle modes to get us in to a vector mode for BSL. */
+ rtx op1 = lowpart_subreg (DImode, operands[1], SFmode);
+ rtx op2 = lowpart_subreg (V2SFmode, operands[2], SFmode);
+ rtx tmp = gen_reg_rtx (V2SFmode);
+ emit_move_insn (v_bitmask,
+ aarch64_simd_gen_const_vector_dup (V2SImode,
+ HOST_WIDE_INT_M1U << 31));
+ emit_insn (gen_aarch64_simd_bslv2sf (tmp, v_bitmask, op2, op1));
+ emit_move_insn (operands[0], lowpart_subreg (SFmode, tmp, V2SFmode));
+ DONE;
+}
)
-
;; For xorsign (x, y), we want to generate:
;;
;; LDR d2, #1<<63
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
# DP: Build idgen.dmdgen.o with the build compiler
--- a/src/gcc/d/Make-lang.in
+++ b/src/gcc/d/Make-lang.in
@@ -315,7 +315,7 @@
+$(LINKER_FOR_BUILD) $(BUILD_LINKER_FLAGS) $(BUILD_LDFLAGS) -o $@ $^
d/idgen.dmdgen.o: d/dfrontend/idgen.c
- $(filter-out -fprofile-%,$(DMD_COMPILE)) $(D_INCLUDES) $<
+ $(filter-out -fprofile-%,$(DMDGEN_COMPILE)) $(D_INCLUDES) $<
$(POSTCOMPILE)
d/impcnvgen.dmdgen.o: $(srcdir)/d/dfrontend/impcnvgen.c
This diff is collapsed.
--- a/src/gcc/config/ia64/ia64.c 2018-01-03 11:03:58.000000000 +0100
+++ b/src/gcc/config/ia64/ia64.c 2018-12-16 12:19:05.420184086 +0100
@@ -6122,13 +6122,6 @@
static void
ia64_override_options_after_change (void)
{
- if (optimize >= 3
- && !global_options_set.x_flag_selective_scheduling
- && !global_options_set.x_flag_selective_scheduling2)
- {
- flag_selective_scheduling2 = 1;
- flag_sel_sched_pipelining = 1;
- }
if (mflag_sched_control_spec == 2)
{
/* Control speculation is on by default for the selective scheduler,
This diff is collapsed.
This diff is collapsed.
Description: allow pragma Assert with No_Implementation_Pragmas restriction.
Author: Eugeniy Meshcheryakov <eugen@debian.org>
Forwarded: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47818
Index: b/src/gcc/ada/sem_prag.adb
===================================================================
--- a/src/gcc/ada/sem_prag.adb
+++ b/src/gcc/ada/sem_prag.adb
@@ -17631,7 +17631,16 @@ package body Sem_Prag is
Typ_Arg : Node_Id;
begin
- GNAT_Pragma;
+ -- This could be a rewritten pragma Assert. If it is the case
+ -- then don't check restrictions, because they are different for
+ -- pragma Assert and were already checked.
+
+ if Nkind (Original_Node (N)) /= N_Pragma
+ or else Pragma_Name (Original_Node (N)) /= Name_Assert
+ then
+ GNAT_Pragma;
+ end if;
+
Check_At_Least_N_Arguments (2);
Check_At_Most_N_Arguments (3);
Check_Optional_Identifier (Arg1, Name_Entity);
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.