Sync from SUSE:SLFO:Main gcc13 revision 85b67995438aada87b1c8d1692780b12

This commit is contained in:
Adrian Schröter 2024-05-03 12:43:20 +02:00
commit 9117d7665d
66 changed files with 45844 additions and 0 deletions
.gitattributesREADME.First-for.SuSE.packagers_constraints_multibuildchange_speccheck-build.shcross-aarch64-gcc13-bootstrap.speccross-aarch64-gcc13.speccross-amdgcn-gcc13.speccross-arm-gcc13.speccross-arm-none-gcc13-bootstrap.speccross-arm-none-gcc13.speccross-avr-gcc13-bootstrap.speccross-avr-gcc13.speccross-bpf-gcc13.speccross-epiphany-gcc13-bootstrap.speccross-epiphany-gcc13.speccross-hppa-gcc13-bootstrap.speccross-hppa-gcc13.speccross-m68k-gcc13.speccross-mips-gcc13.speccross-nvptx-gcc13.speccross-ppc64-gcc13.speccross-ppc64le-gcc13-bootstrap.speccross-ppc64le-gcc13.speccross-pru-gcc13-bootstrap.speccross-pru-gcc13.speccross-riscv64-elf-gcc13-bootstrap.speccross-riscv64-elf-gcc13.speccross-riscv64-gcc13-bootstrap.speccross-riscv64-gcc13.speccross-rx-gcc13-bootstrap.speccross-rx-gcc13.speccross-s390x-gcc13-bootstrap.speccross-s390x-gcc13.speccross-sparc-gcc13.speccross-sparc64-gcc13.speccross-x86_64-gcc13.speccross.spec.ingcc-13.2.1+git8285.tar.xzgcc-add-defaultsspec.diffgcc.spec.ingcc10-amdgcn-llvm-as.patchgcc11-amdgcn-disable-hot-cold-partitioning.patchgcc11-gdwarf-4-default.patchgcc13-bsc1216664.patchgcc13-pr88345-min-func-alignment.diffgcc13-rpmlintrcgcc13-sanitizer-remove-crypt-interception.patchgcc13-testresults-rpmlintrcgcc13-testresults.specgcc13.changesgcc13.specgcc41-ppc32-retaddr.patchgcc43-no-unwind-tables.diffgcc44-rename-info-files.patchgcc44-textdomain.patchgcc48-libstdc++-api-reference.patchgcc7-avoid-fixinc-error.diffgcc7-remove-Wexpansion-to-defined-from-Wextra.patchgcc9-reproducible-builds-buildid-for-checksum.patchgcc9-reproducible-builds.patchgdcflags.patchnewlib-4.3.0.20230120.tar.xzpre_checkin.shtls-no-direct.diff

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

View File

@ -0,0 +1,31 @@
IMPORTANT: Please change gcc.spec.in and then run ./pre_checkin.sh!
Do not change gcc.spec directly!
Since GCC comes with a testsuite that runs for quite a long time and
that test suite also contains some known failures, we should run the
testsuite of GCC whenever the compiler is changed to ensure a high
quality compiler.
The package is now split into multiple parts, gcc$VER,
gcc$VER-testresults and libffi$VER (plus various spec files for
cross and icecream cross compilers). The testsuite is run from
gcc$VER-testresults, a dummy package with the testresults, gcc$VER-testresults,
is generated from it which contains testing logfiles and summary.
Before checking in a new compiler, please do the following steps as QA
measure to check that the new compiler does not introduce any new
failures:
- Run mbuild for all archs for at least the gcc$VER and the gcc$VER-testresults
subpackages
- When mbuild is finished, call
/suse/rguenther/bin/compare-testresults.sh mbuild-directory
(for the gcc$VER-testresults build).
The output of that script should not show any failures. If it does,
please fix them or discuss this with the gcc package maintainers.
- Do not remove this file.
Thanks,
Your GCC packagers.

26
_constraints Normal file
View File

@ -0,0 +1,26 @@
<constraints>
<hardware>
<disk>
<size unit="G">26</size>
</disk>
<physicalmemory>
<size unit="G">4</size>
</physicalmemory>
<processors>4</processors>
<jobs>4</jobs>
</hardware>
<overwrite>
<conditions>
<arch>x86_64</arch>
<arch>ppc64le</arch>
<arch>aarch64</arch>
</conditions>
<hardware>
<memory>
<size unit="G">8</size>
</memory>
<processors>8</processors>
<jobs>8</jobs>
</hardware>
</overwrite>
</constraints>

35
_multibuild Normal file
View File

@ -0,0 +1,35 @@
<multibuild>
<flavor>gcc13-testresults</flavor>
<flavor>cross-aarch64-gcc13-bootstrap</flavor>
<flavor>cross-aarch64-gcc13</flavor>
<flavor>cross-riscv64-gcc13-bootstrap</flavor>
<flavor>cross-riscv64-gcc13</flavor>
<flavor>cross-s390x-gcc13-bootstrap</flavor>
<flavor>cross-s390x-gcc13</flavor>
<flavor>cross-ppc64le-gcc13-bootstrap</flavor>
<flavor>cross-ppc64le-gcc13</flavor>
<flavor>cross-arm-gcc13</flavor>
<flavor>cross-avr-gcc13-bootstrap</flavor>
<flavor>cross-avr-gcc13</flavor>
<flavor>cross-pru-gcc13-bootstrap</flavor>
<flavor>cross-pru-gcc13</flavor>
<flavor>cross-x86_64-gcc13</flavor>
<flavor>cross-sparc-gcc13</flavor>
<flavor>cross-sparc64-gcc13</flavor>
<flavor>cross-ppc64-gcc13</flavor>
<flavor>cross-m68k-gcc13</flavor>
<flavor>cross-mips-gcc13</flavor>
<flavor>cross-hppa-gcc13-bootstrap</flavor>
<flavor>cross-hppa-gcc13</flavor>
<flavor>cross-arm-none-gcc13-bootstrap</flavor>
<flavor>cross-arm-none-gcc13</flavor>
<flavor>cross-epiphany-gcc13-bootstrap</flavor>
<flavor>cross-epiphany-gcc13</flavor>
<flavor>cross-riscv64-elf-gcc13-bootstrap</flavor>
<flavor>cross-riscv64-elf-gcc13</flavor>
<flavor>cross-rx-gcc13-bootstrap</flavor>
<flavor>cross-rx-gcc13</flavor>
<flavor>cross-nvptx-gcc13</flavor>
<flavor>cross-amdgcn-gcc13</flavor>
<flavor>cross-bpf-gcc13</flavor>
</multibuild>

135
change_spec Normal file
View File

@ -0,0 +1,135 @@
#!/bin/bash
do_crosses=1
do_optional_compiler_languages=0
rm -f gcc*-testresults.spec gcc*-testresults.changes gcc*.spec cross*.spec cross*.changes
# Default is to generate the normal gcc package
# unless a parameter is given. In case that it is '-*',
# that parameter will be used as suffix for the package name
# and as suffix for the install path (/opt/gccSUFFIX)
# In case that it is '[0-9]*', that parameter will be used
# as a suffix for a versioned package name.
if [ $# -lt 1 ]; then
echo No package suffix given
outfile=gcc.spec
else
case $1 in
[0-9]*)
base_ver=$1
outfile=gcc$1.spec
;;
*)
echo Invalid package suffix
exit 1
;;
esac
fi
: > $outfile
if test "$do_optional_compiler_languages" = "1"; then
echo '%define build_optional_compiler_languages 1' >> $outfile
fi
sed -e 's%@base_ver@%'$base_ver'%g' \
gcc.spec.in \
| sed -n -e '{
/^# PACKAGE-BEGIN/h
/^# PACKAGE-BEGIN/,/^# PACKAGE-END/H
/^# PACKAGE-BEGIN/,/^# PACKAGE-END/!p
/^# PACKAGE-END/{g
s/@variant@//g
p
g
s/@variant@/-32bit/g
p
g
s/@variant@/-64bit/g
p
}
}' >> $outfile
echo '%define building_testsuite 1' > gcc$base_ver-testresults.spec
echo '%define run_tests 1' >> gcc$base_ver-testresults.spec
sed -e '/^# GCC-TESTSUITE-DELETE-BEGIN/,/^# GCC-TESTSUITE-DELETE-END/d;s/-n gcc@base_ver@-testresults$//g;s/^Name:[[:space:]]*gcc@base_ver@/Name: gcc@base_ver@-testresults/g' \
gcc.spec.in \
| sed -e 's%@base_ver@%'$base_ver'%g' \
>> gcc$base_ver-testresults.spec
echo '<multibuild>' > _multibuild
echo '<flavor>'gcc$base_ver-testresults'</flavor>' >> _multibuild
add_cross() {
local pkgname="$1"; shift
local rpmtarget="$1"; shift
local triplet="$1"; shift
echo "%define pkgname $pkgname" > $pkgname.spec
echo "%define cross_arch $rpmtarget" >> $pkgname.spec
echo "%define gcc_target_arch $triplet" >> $pkgname.spec
echo "$@" >> $pkgname.spec
{ sed -n -e '1,/SRC-COMMON-BEGIN/p' cross.spec.in
sed -n -e '/SRC-COMMON-BEGIN/,/SRC-COMMON-END/p' $outfile
sed -n -e '/SRC-COMMON-END/,/BUILD-COMMON-BEGIN/p' cross.spec.in
sed -n -e '/BUILD-COMMON-BEGIN/,/BUILD-COMMON-END/p' $outfile
sed -n -e '/BUILD-COMMON-END/,$p' cross.spec.in; } |
sed -e "s#@base_ver@#$base_ver#" \
-e "s/^\(ExclusiveArch.*\) $rpmtarget[^ \r]*/\1 /" \
>> $pkgname.spec
echo '<flavor>'$pkgname'</flavor>' >> _multibuild
}
add_newlib_cross() {
add_cross $1-bootstrap $2 $3 "%define gcc_target_newlib 1
%define gcc_libc_bootstrap 1"
add_cross $1 $2 $3 "%define gcc_target_newlib 1"
}
add_glibc_cross() {
add_cross $1-bootstrap $2 $3 "%define gcc_libc_bootstrap 1"
add_cross $1 $2 $3 "%define gcc_target_glibc 1"
}
# We now support "proper" cross-compilers to suse targets via a
# cross-glibc package, enable that via for example
#
# add_cross cross-aarch64-gcc$base_ver aarch64 aarch64-suse-linux
#
# For now keep the old way of doing things
if test "$do_crosses" = 1 ; then
add_glibc_cross cross-aarch64-gcc$base_ver aarch64 aarch64-suse-linux
add_glibc_cross cross-riscv64-gcc$base_ver riscv64 riscv64-suse-linux
add_glibc_cross cross-s390x-gcc$base_ver s390x s390x-suse-linux
add_glibc_cross cross-ppc64le-gcc$base_ver ppc64le powerpc64le-suse-linux
add_cross cross-arm-gcc$base_ver arm arm-suse-linux-gnueabi %define gcc_icecream 1
add_cross cross-avr-gcc$base_ver-bootstrap avr avr "%define gcc_libc_bootstrap 1"
add_cross cross-avr-gcc$base_ver avr avr
add_newlib_cross cross-pru-gcc$base_ver pru pru
add_cross cross-x86_64-gcc$base_ver x86_64 x86_64-suse-linux %define gcc_icecream 1
add_cross cross-sparc-gcc$base_ver sparcv9 sparc-suse-linux %define gcc_icecream 1
add_cross cross-sparc64-gcc$base_ver sparc64 sparc64-suse-linux %define gcc_icecream 1
add_cross cross-ppc64-gcc$base_ver ppc64 powerpc64-suse-linux %define gcc_icecream 1
add_cross cross-m68k-gcc$base_ver m68k m68k-suse-linux %define gcc_icecream 1
add_cross cross-mips-gcc$base_ver mips mips-suse-linux %define gcc_icecream 1
add_cross cross-hppa-gcc$base_ver-bootstrap hppa hppa-suse-linux %define gcc_libc_bootstrap 1
add_cross cross-hppa-gcc$base_ver hppa hppa-suse-linux %define gcc_icecream 1
add_newlib_cross cross-arm-none-gcc$base_ver arm-none arm-none-eabi
add_newlib_cross cross-epiphany-gcc$base_ver epiphany epiphany-elf
#add_newlib_cross cross-nds32le-gcc$base_ver nds32le nds32le-elf
add_newlib_cross cross-riscv64-elf-gcc$base_ver riscv64 riscv64-elf
#add_newlib_cross cross-rl78-gcc$base_ver rl78 rl78-elf
add_newlib_cross cross-rx-gcc$base_ver rx rx-elf
fi
# the nvptx and amdgcn crosses are used for offloading
add_cross cross-nvptx-gcc$base_ver nvptx nvptx-none %define gcc_accel 1
add_cross cross-amdgcn-gcc$base_ver amdgcn amdgcn-amdhsa %define gcc_accel 1
add_cross cross-bpf-gcc$base_ver bpf bpf-none
for f in *.spec; do
sed -i -e '/^# .*-\(BEGIN\|END\)$/d' $f
done
echo '</multibuild>' >> _multibuild
osc service localrun format_spec_file

38
check-build.sh Normal file
View File

@ -0,0 +1,38 @@
#!/bin/bash
# Copyright (c) 2003,2005 SUSE Linux Products GmbH, Germany. All rights reserved.
#
# Authors: Thorsten Kukuk <kukuk@suse.de>
#
# this script use the following variable(s):
#
# - $BUILD_BASENAME
#
case $BUILD_BASENAME in
*ppc*)
# Our biarch 32-bit compiler needs to be build on a 64-bit machine,
# otherwise some configure checks fail.
# Note that we cannot use uname here since powerpc32 was invoked
# already.
grep 'series64\|ppc64' /proc/version > /dev/null
if [ $? -ne 0 ] ; then
echo "build does not work on `hostname` for gcc"
exit 1
fi
;;
*x86_64*)
#if [ `ulimit -v` -le 740000 ] ; then
# echo "build does not work on ("`hostname`" for gcc)"
# exit 1
#fi
if [ `getconf _NPROCESSORS_CONF` -lt 2 ] ; then
echo "build does not work on `hostname` for gcc"
exit 1
fi
;;
*)
;;
esac
exit 0

File diff suppressed because it is too large Load Diff

1078
cross-aarch64-gcc13.spec Normal file

File diff suppressed because it is too large Load Diff

1078
cross-amdgcn-gcc13.spec Normal file

File diff suppressed because it is too large Load Diff

1078
cross-arm-gcc13.spec Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1078
cross-arm-none-gcc13.spec Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1078
cross-avr-gcc13.spec Normal file

File diff suppressed because it is too large Load Diff

1078
cross-bpf-gcc13.spec Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1078
cross-epiphany-gcc13.spec Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1078
cross-hppa-gcc13.spec Normal file

File diff suppressed because it is too large Load Diff

1078
cross-m68k-gcc13.spec Normal file

File diff suppressed because it is too large Load Diff

1078
cross-mips-gcc13.spec Normal file

File diff suppressed because it is too large Load Diff

1078
cross-nvptx-gcc13.spec Normal file

File diff suppressed because it is too large Load Diff

1078
cross-ppc64-gcc13.spec Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1078
cross-ppc64le-gcc13.spec Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1078
cross-pru-gcc13.spec Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1078
cross-riscv64-elf-gcc13.spec Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1078
cross-riscv64-gcc13.spec Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1078
cross-rx-gcc13.spec Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1078
cross-s390x-gcc13.spec Normal file

File diff suppressed because it is too large Load Diff

1078
cross-sparc-gcc13.spec Normal file

File diff suppressed because it is too large Load Diff

1078
cross-sparc64-gcc13.spec Normal file

File diff suppressed because it is too large Load Diff

1078
cross-x86_64-gcc13.spec Normal file

File diff suppressed because it is too large Load Diff

530
cross.spec.in Normal file
View File

@ -0,0 +1,530 @@
# nospeccleaner
%define build_cp 0%{!?gcc_accel:1}
%if 0%{?gcc_libc_bootstrap:1} || "%{cross_arch}" == "bpf"
%define build_cp 0
%endif
%define build_ada 0
%define build_libjava 0
%define build_java 0
%define build_fortran 0%{?gcc_accel:1}
%define build_objc 0
%define build_objcp 0
%define build_go 0
%define build_nvptx 0
%define build_gcn 0
%define build_d 0
%define build_rust 0
%define build_m2 0
%define enable_plugins 0
%define build_jit 0
%define use_lto_bootstrap 0
%define binutils_target %{cross_arch}
%if "%{cross_arch}" == "armv7l" || "%{cross_arch}" == "armv7hl"
%define binutils_target arm
%endif
%if "%{cross_arch}" == "armv6l" || "%{cross_arch}" == "armv6hl"
%define binutils_target arm
%endif
%if "%{cross_arch}" == "armv5tel"
%define binutils_target arm
%endif
%if "%{cross_arch}" == "arm-none"
%define binutils_target arm
%endif
%if "%{cross_arch}" == "riscv64-elf"
%define binutils_target riscv64
%endif
%if "%{cross_arch}" == "sparcv9"
%define binutils_target sparc
%endif
%define canonical_target %(echo %{binutils_target} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%if "%{binutils_target}" == "avr" || "%{binutils_target}" == "spu" || "%{binutils_target}" == "pru"
%define binutils_os %{canonical_target}
%else
%if "%{binutils_target}" == "epiphany" || "%{binutils_target}" == "nds32le" || "%{binutils_target}" == "rl78" || "%{binutils_target}" == "rx"
%define binutils_os %{canonical_target}-elf
%else
%if "%{binutils_target}" == "arm"
%define binutils_os %{canonical_target}-suse-linux-gnueabi
%else
%if "%{binutils_target}" == "bpf"
%define binutils_os %{canonical_target}-none
%else
%if 0%{?gcc_accel:1}
%define binutils_os %{gcc_target_arch}
%else
%define binutils_os %{canonical_target}-suse-linux
%endif
%endif
%endif
%endif
%endif
%if 0%{?gcc_icecream:1}
%define sysroot %{_prefix}/%{gcc_target_arch}
%else
# offloading builds newlib in-tree and can install in
# the GCC private path without extra sysroot
%if 0%{!?gcc_accel:1}
# use same sysroot as in binutils.spec
%define sysroot %{_prefix}/%{binutils_os}/sys-root
%endif
%endif
%if %{suse_version} >= 1220
%define selfconflict() %1
%else
%define selfconflict() otherproviders(%1)
%endif
Name: %{pkgname}
# SRC-COMMON-BEGIN
# SRC-COMMON-END
%if "%{cross_arch}" != "nvptx"
%if "%{cross_arch}" != "amdgcn"
BuildRequires: cross-%{binutils_target}-binutils
Requires: cross-%{binutils_target}-binutils
%endif
%endif
%define hostsuffix %{nil}
%if 0%{suse_version} < 1220
%define hostsuffix -4.8
BuildRequires: gcc48-c++
%else
BuildRequires: gcc-c++
%endif
%if %{suse_version} > 1500
BuildRequires: libzstd-devel
%endif
BuildRequires: bison
BuildRequires: flex
BuildRequires: gettext-devel
BuildRequires: glibc-devel-32bit
%if %{with limitbuild}
BuildRequires: memory-constraints
%endif
BuildRequires: mpc-devel
BuildRequires: mpfr-devel
BuildRequires: perl
%if %{suse_version} > 1220
BuildRequires: makeinfo
%else
BuildRequires: texinfo
%endif
BuildRequires: zlib-devel
%if %{suse_version} >= 1230
BuildRequires: isl-devel
%endif
%ifarch ia64
BuildRequires: libunwind-devel
%endif
%if 0%{!?gcc_icecream:1}
%if 0%{!?gcc_libc_bootstrap:1}
%if 0%{?gcc_target_newlib:1}
%if !0%{?is_opensuse}
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-newlib-devel
Requires: cross-%cross_arch-newlib-devel
%endif
%if "%{cross_arch}" == "avr"
%if !0%{?is_opensuse}
ExclusiveArch: do-not-build
%endif
BuildRequires: avr-libc
%endif
%if 0%{?gcc_target_glibc:1}
%if %{suse_version} < 1600
ExclusiveArch: do-not-build
%endif
BuildRequires: cross-%cross_arch-glibc-devel
Requires: cross-%cross_arch-glibc-devel
%endif
%endif
%if "%{cross_arch}" == "nvptx"
BuildRequires: nvptx-tools
Requires: nvptx-tools
Requires: cross-nvptx-newlib-devel >= %{version}-%{release}
ExclusiveArch: x86_64
%define nvptx_newlib 1
%endif
%if "%{cross_arch}" == "amdgcn"
# amdgcn uses the llvm assembler and linker
%if %{suse_version} < 1550
BuildRequires: llvm13
%define product_libs_llvm_ver 13
%else
BuildRequires: llvm%{product_libs_llvm_ver}
%endif
BuildRequires: lld
%if %{suse_version} < 1550
Requires: llvm13
%else
Requires: llvm%{product_libs_llvm_ver}
%endif
Requires: lld
Requires: cross-amdgcn-newlib-devel >= %{version}-%{release}
# SLE12 does not fulfil build requirements for GCN, SLE15 SP1 does
# technically also SLE12 SP5 but do not bother there
%if %{suse_version} >= 1550 || 0%{?sle_version:%sle_version} >= 150100
ExclusiveArch: x86_64
%else
ExclusiveArch: do-not-build
%endif
%define amdgcn_newlib 1
%endif
%endif
%if "%{cross_arch}" == "pru"
ExclusiveArch: %arm
%endif
%if 0%{?gcc_target_glibc:1}
%ifarch %{cross_arch}
ExcludeArch: %{cross_arch}
%endif
%endif
%if 0%{?gcc_icecream:1}%{?gcc_libc_bootstrap:1}
ExclusiveArch: i586 ppc64le ppc64 x86_64 s390x aarch64 riscv64
%endif
%define _binary_payload w.ufdio
# Obsolete cross-ppc-gcc49 from cross-ppc64-gcc49 which has
# file conflicts with it and is no longer packaged
%if "%pkgname" == "cross-ppc64-gcc49"
Obsoletes: cross-ppc-gcc49 <= 4.9.0+r209354
%endif
%if 0%{?gcc_target_newlib:1}%{?gcc_target_glibc:1}
# Generally only one cross for the same target triplet can be installed
# at the same time as we are populating a non-version-specific sysroot
Provides: %{gcc_target_arch}-gcc
Conflicts: %selfconflict %{gcc_target_arch}-gcc
%endif
%if 0%{?gcc_libc_bootstrap:1}
# The -bootstrap packages file-conflict with the non-bootstrap variants.
# Even if we don't actually (want to) distribute the bootstrap variants
# the following avoids repo-checker spamming us endlessly.
Conflicts: cross-%{cross_arch}-gcc@base_ver@
%endif
#!BuildIgnore: gcc-PIE
%if 0%{build_cp:1}
# The cross compiler only packages the arch specific c++ headers, so
# we need to depend on the host libstdc++ devel headers (we wouldn't need
# the libs, though)
Requires: libstdc++6-devel-gcc@base_ver@
%endif
AutoReqProv: off
%if 0%{!?gcc_accel:1}
BuildRequires: update-alternatives
Requires(post): update-alternatives
Requires(preun): update-alternatives
%endif
Summary: The GNU Compiler Collection targeting %{cross_arch}
License: GPL-3.0-or-later
%description
The GNU Compiler Collection as a cross-compiler targeting %{cross_arch}.
%if 0%{?gcc_icecream:1}
Note this is only useful for building freestanding things like the
kernel since it fails to include target libraries and headers.
%endif
%if 0%{?gcc_libc_bootstrap:1}
This is a package that is necessary for bootstrapping another package
only, it is not intended for any other use.
%endif
# BUILD-COMMON-BEGIN
# BUILD-COMMON-END
%if 0%{!?gcc_icecream:1}
make %{?make_output_sync} %{?_smp_mflags}
%else
make %{?make_output_sync} %{?_smp_mflags} all-host
%endif
%if 0%{?gcc_icecream:%gcc_icecream}
%package -n cross-%cross_arch-gcc@base_ver@-icecream-backend
Summary: Icecream backend for the GNU C Compiler
Group: Development/Languages/C and C++
%description -n cross-%cross_arch-gcc@base_ver@-icecream-backend
This package contains the icecream environment for the GNU C Compiler
%endif
%if 0%{?nvptx_newlib:1}
%package -n cross-nvptx-newlib@base_ver@-devel
Summary: Newlib for the nvptx offload target
Group: Development/Languages/C and C++
Provides: cross-nvptx-newlib-devel = %{version}-%{release}
Conflicts: cross-nvptx-newlib-devel
%description -n cross-nvptx-newlib@base_ver@-devel
Newlib development files for the nvptx offload target compiler.
%endif
%if 0%{?amdgcn_newlib:1}
%package -n cross-amdgcn-newlib@base_ver@-devel
Summary: Newlib for the amdgcn offload target
Group: Development/Languages/C and C++
Provides: cross-amdgcn-newlib-devel = %{version}-%{release}
Conflicts: cross-amdgcn-newlib-devel
%description -n cross-amdgcn-newlib@base_ver@-devel
Newlib development files for the amdgcn offload target compiler.
%endif
%define targetlibsubdir %{_libdir}/gcc/%{gcc_target_arch}/%{gcc_dir_version}
%install
cd obj-%{GCCDIST}
%if "%{TARGET_ARCH}" == "amdgcn"
# libtool needs to be able to call ranlib
export PATH="`pwd`/target-tools/bin:$PATH"
%endif
# install and fixup host parts
make DESTDIR=$RPM_BUILD_ROOT install-host
rm -rf $RPM_BUILD_ROOT/%{targetlibsubdir}/install-tools
rm -f $RPM_BUILD_ROOT/%{targetlibsubdir}/liblto_plugin.la
# common fixup
rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
# install and fixup target parts
%if 0%{?gcc_icecream:1}
# so expect the sysroot to be populated from natively built binaries
%else
# We want shared libraries to reside in the sysroot but the .so symlinks
# on the host. Once we have a cross target that has shared libs we need
# to manually fix up things here like we do for non-cross compilers
mkdir -p $RPM_BUILD_ROOT/%{?sysroot:%sysroot}
make DESTDIR=$RPM_BUILD_ROOT install-target
%if %{build_cp}
# So we installed libstdc++ headers into %prefix where they conflict
# with other host compilers. Rip out the non-target specific parts
# again. Note not all cross targets support libstdc++, so create the
# directory to make things easier.
mkdir -p $RPM_BUILD_ROOT/%_prefix/include/c++/%{gcc_dir_version}
find $RPM_BUILD_ROOT/%_prefix/include/c++/%{gcc_dir_version} -mindepth 1 -maxdepth 1 -type d -a -not -name %{gcc_target_arch} | xargs -r rm -r
find $RPM_BUILD_ROOT/%_prefix/include/c++/%{gcc_dir_version} -maxdepth 1 -type f | xargs -r rm
# And also remove installed pretty printers which conflict in similar ways
rm -rf $RPM_BUILD_ROOT/%{_datadir}/gcc%{binsuffix}
%endif
%endif
%if 0%{?binutils_os:1}
for prog in as ld; do
ln -s /usr/%{binutils_os}/bin/$prog $RPM_BUILD_ROOT%{targetlibsubdir}/
done
%endif
# remove docs
rm -rf $RPM_BUILD_ROOT%{_mandir}
rm -rf $RPM_BUILD_ROOT%{_infodir}
# for accelerators remove all frontends but lto1 and also install-tools
%if 0%{?gcc_accel:1}
rm -f $RPM_BUILD_ROOT%{libsubdir}/accel/%{gcc_target_arch}/cc1
rm -f $RPM_BUILD_ROOT%{libsubdir}/accel/%{gcc_target_arch}/cc1plus
rm -rf $RPM_BUILD_ROOT%{libsubdir}/accel/%{gcc_target_arch}/install-tools
rm -rf $RPM_BUILD_ROOT%{targetlibsubdir}/install-tools
# also move things from target directories into the accel path since
# that is the place where we later search for (only)
( cd $RPM_BUILD_ROOT%{targetlibsubdir} && tar cf - . ) | ( cd $RPM_BUILD_ROOT%{libsubdir}/accel/%{gcc_target_arch} && tar xf - )
rm -rf $RPM_BUILD_ROOT%{targetlibsubdir}
%endif
# for amdgcn install the symlinks to the llvm tools
# follow alternatives symlinks to the hardcoded version requirement
%if "%{TARGET_ARCH}" == "amdgcn"
mkdir -p $RPM_BUILD_ROOT%{_prefix}/amdgcn-amdhsa/bin
ln -s /usr/bin/llvm-ar-%{product_libs_llvm_ver}* $RPM_BUILD_ROOT%{_prefix}/amdgcn-amdhsa/bin/ar
ln -s /usr/bin/llvm-mc-%{product_libs_llvm_ver}* $RPM_BUILD_ROOT%{_prefix}/amdgcn-amdhsa/bin/as
ln -s /usr/bin/lld $RPM_BUILD_ROOT%{_prefix}/amdgcn-amdhsa/bin/ld
ln -s /usr/bin/llvm-nm-%{product_libs_llvm_ver}* $RPM_BUILD_ROOT%{_prefix}/amdgcn-amdhsa/bin/nm
ln -s /usr/bin/llvm-ranlib-%{product_libs_llvm_ver}* $RPM_BUILD_ROOT%{_prefix}/amdgcn-amdhsa/bin/ranlib
ln -s %{_prefix}/amdgcn-amdhsa/bin/ar $RPM_BUILD_ROOT%{_prefix}/bin/amdgcn-amdhsa-ar
ln -s %{_prefix}/amdgcn-amdhsa/bin/as $RPM_BUILD_ROOT%{_prefix}/bin/amdgcn-amdhsa-as
ln -s %{_prefix}/amdgcn-amdhsa/bin/ld $RPM_BUILD_ROOT%{_prefix}/bin/amdgcn-amdhsa-ld
ln -s %{_prefix}/amdgcn-amdhsa/bin/nm $RPM_BUILD_ROOT%{_prefix}/bin/amdgcn-amdhsa-nm
ln -s %{_prefix}/amdgcn-amdhsa/bin/ranlib $RPM_BUILD_ROOT%{_prefix}/bin/amdgcn-amdhsa-ranlib
%endif
%if 0%{?gcc_icecream:%gcc_icecream}
# Build an icecream environment
# The assembler comes from the cross-binutils, and hence is _not_
# named funnily, not even on ppc, so there we need the original target
install -s -D %{_prefix}/bin/%{binutils_os}-as \
$RPM_BUILD_ROOT/env/usr/bin/as
install -s $RPM_BUILD_ROOT/%{_prefix}/bin/%{gcc_target_arch}-g++%{binsuffix} \
$RPM_BUILD_ROOT/env/usr/bin/g++
install -s $RPM_BUILD_ROOT/%{_prefix}/bin/%{gcc_target_arch}-gcc%{binsuffix} \
$RPM_BUILD_ROOT/env/usr/bin/gcc
for back in cc1 cc1plus; do
install -s -D $RPM_BUILD_ROOT/%{targetlibsubdir}/$back \
$RPM_BUILD_ROOT/env%{targetlibsubdir}/$back
done
if test -f $RPM_BUILD_ROOT/%{targetlibsubdir}/liblto_plugin.so; then
install -s -D $RPM_BUILD_ROOT/%{targetlibsubdir}/liblto_plugin.so \
$RPM_BUILD_ROOT/env%{targetlibsubdir}/liblto_plugin.so
fi
# Make sure to also pull in all shared library requirements for the
# binaries we put into the environment which is operated by chrooting
# into it and execing the compiler
libs=`for bin in $RPM_BUILD_ROOT/env/usr/bin/* $RPM_BUILD_ROOT/env%{targetlibsubdir}/*; do \
ldd $bin | sed -n '\,^[^/]*\(/[^ ]*\).*,{ s//\1/; p; }' ;\
done | sort -u `
for lib in $libs; do
# Check wether the same library also exists in the parent directory,
# and prefer that on the assumption that it is a more generic one.
baselib=`echo "$lib" | sed 's,/[^/]*\(/[^/]*\)$,\1,'`
test -f "$baselib" && lib=$baselib
install -s -D $lib $RPM_BUILD_ROOT/env$lib
done
cd $RPM_BUILD_ROOT/env
tar --no-recursion --mtime @${SOURCE_DATE_EPOCH:-$(date +%s)} --format=gnu -cv `find *|LC_ALL=C sort` |\
gzip -n9 > ../%{name}_%{_arch}.tar.gz
cd ..
mkdir -p usr/share/icecream-envs
mv %{name}_%{_arch}.tar.gz usr/share/icecream-envs
rpm -q --changelog glibc > usr/share/icecream-envs/%{name}_%{_arch}.glibc
rpm -q --changelog binutils > usr/share/icecream-envs/%{name}_%{_arch}.binutils
rm -r env
%endif
# we provide update-alternatives for selecting a compiler version for
# crosses
%if 0%{!?gcc_accel:1}
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for ex in gcc cpp \
%if %{build_cp}
c++ g++ \
%endif
gcc-ar gcc-nm gcc-ranlib lto-dump \
%if 0%{!?gcc_libc_bootstrap:1} && "%{cross_arch}" != "bpf"
gcov gcov-dump gcov-tool \
%endif
; do
ln -s %{_sysconfdir}/alternatives/%{gcc_target_arch}-$ex \
%{buildroot}%{_bindir}/%{gcc_target_arch}-$ex
done
%post
%{_sbindir}/update-alternatives \
--install %{_bindir}/%{gcc_target_arch}-gcc %{gcc_target_arch}-gcc %{_bindir}/%{gcc_target_arch}-gcc%{binsuffix} @base_ver@ \
--slave %{_bindir}/%{gcc_target_arch}-cpp %{gcc_target_arch}-cpp %{_bindir}/%{gcc_target_arch}-cpp%{binsuffix} \
%if %{build_cp}
--slave %{_bindir}/%{gcc_target_arch}-c++ %{gcc_target_arch}-c++ %{_bindir}/%{gcc_target_arch}-c++%{binsuffix} \
--slave %{_bindir}/%{gcc_target_arch}-g++ %{gcc_target_arch}-g++ %{_bindir}/%{gcc_target_arch}-g++%{binsuffix} \
%endif
%if 0%{!?gcc_libc_bootstrap:1} && "%{cross_arch}" != "bpf"
--slave %{_bindir}/%{gcc_target_arch}-gcov %{gcc_target_arch}-gcov %{_bindir}/%{gcc_target_arch}-gcov%{binsuffix} \
--slave %{_bindir}/%{gcc_target_arch}-gcov-dump %{gcc_target_arch}-gcov-dump %{_bindir}/%{gcc_target_arch}-gcov-dump%{binsuffix} \
--slave %{_bindir}/%{gcc_target_arch}-gcov-tool %{gcc_target_arch}-gcov-tool %{_bindir}/%{gcc_target_arch}-gcov-tool%{binsuffix} \
%endif
--slave %{_bindir}/%{gcc_target_arch}-gcc-ar %{gcc_target_arch}-gcc-ar %{_bindir}/%{gcc_target_arch}-gcc-ar%{binsuffix} \
--slave %{_bindir}/%{gcc_target_arch}-gcc-nm %{gcc_target_arch}-gcc-nm %{_bindir}/%{gcc_target_arch}-gcc-nm%{binsuffix} \
--slave %{_bindir}/%{gcc_target_arch}-lto-dump %{gcc_target_arch}-lto-dump %{_bindir}/%{gcc_target_arch}-lto-dump%{binsuffix} \
--slave %{_bindir}/%{gcc_target_arch}-gcc-ranlib %{gcc_target_arch}-gcc-ranlib %{_bindir}/%{gcc_target_arch}-gcc-ranlib%{binsuffix}
%postun
if [ ! -f %{_bindir}/%{gcc_target_arch}-gcc ] ; then
%{_sbindir}/update-alternatives --remove %{gcc_target_arch}-gcc %{_bindir}/%{gcc_target_arch}-gcc%{binsuffix}
fi
%endif
%files
%defattr(-,root,root)
%if 0%{?gcc_accel:1}
%{_prefix}/bin/%{GCCDIST}-accel-%{gcc_target_arch}-*
%dir %{libsubdir}
%dir %{libsubdir}/accel
%{libsubdir}/accel/%{gcc_target_arch}
%if "%{cross_arch}" == "amdgcn"
%{_prefix}/%{gcc_target_arch}/bin
%{_prefix}/bin/amdgcn-amdhsa-ar
%{_prefix}/bin/amdgcn-amdhsa-as
%{_prefix}/bin/amdgcn-amdhsa-ld
%{_prefix}/bin/amdgcn-amdhsa-nm
%{_prefix}/bin/amdgcn-amdhsa-ranlib
%endif
%else
%{_prefix}/bin/%{gcc_target_arch}-gcc%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-cpp%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcc-ar%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcc-nm%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcc-ranlib%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-lto-dump%{binsuffix}
%if 0%{!?gcc_libc_bootstrap:1} && "%{cross_arch}" != "bpf"
%{_prefix}/bin/%{gcc_target_arch}-gcov%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-gcov
%{_prefix}/bin/%{gcc_target_arch}-gcov-dump
%{_prefix}/bin/%{gcc_target_arch}-gcov-tool
%endif
%{_prefix}/bin/%{gcc_target_arch}-gcc
%{_prefix}/bin/%{gcc_target_arch}-cpp
%{_prefix}/bin/%{gcc_target_arch}-gcc-ar
%{_prefix}/bin/%{gcc_target_arch}-gcc-nm
%{_prefix}/bin/%{gcc_target_arch}-gcc-ranlib
%{_prefix}/bin/%{gcc_target_arch}-lto-dump
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-cpp
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-ar
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-nm
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcc-ranlib
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-lto-dump
%if 0%{!?gcc_libc_bootstrap:1} && "%{cross_arch}" != "bpf"
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-dump
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-gcov-tool
%endif
%if %{build_cp}
%{_prefix}/bin/%{gcc_target_arch}-c++%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-g++%{binsuffix}
%{_prefix}/bin/%{gcc_target_arch}-c++
%{_prefix}/bin/%{gcc_target_arch}-g++
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-c++
%ghost %{_sysconfdir}/alternatives/%{gcc_target_arch}-g++
%if 0%{!?gcc_libc_bootstrap:1}
%if "%{cross_arch}" == "avr" || 0%{?gcc_target_newlib:1} || 0%{?gcc_target_glibc:1}
%{_prefix}/include/c++
%endif
%endif
%endif
%dir %{targetlibsubdir}
%dir %{_libdir}/gcc/%{gcc_target_arch}
%{targetlibsubdir}
%endif
%if 0%{!?gcc_icecream:1} && 0%{!?gcc_libc_bootstrap:1} && 0%{?sysroot:1}
%{sysroot}
%endif
%if 0%{?gcc_icecream:%gcc_icecream}
%files -n cross-%cross_arch-gcc@base_ver@-icecream-backend
%defattr(-,root,root)
/usr/share/icecream-envs
%endif
%if 0%{?nvptx_newlib:1}
%files -n cross-nvptx-newlib@base_ver@-devel
%defattr(-,root,root)
%{_prefix}/%{gcc_target_arch}
%endif
%if 0%{?amdgcn_newlib:1}
%files -n cross-amdgcn-newlib@base_ver@-devel
%defattr(-,root,root)
%{_prefix}/%{gcc_target_arch}
%exclude %{_prefix}/%{gcc_target_arch}/bin
%endif
%changelog -n cross-%{pkgname}-gcc@base_ver@

BIN
gcc-13.2.1+git8285.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

51
gcc-add-defaultsspec.diff Normal file
View File

@ -0,0 +1,51 @@
Index: gcc/gcc.cc
===================================================================
--- gcc/gcc.cc.orig 2013-11-26 15:41:59.000000000 +0100
+++ gcc/gcc.cc 2013-11-26 16:40:35.780548125 +0100
@@ -258,6 +258,7 @@ static const char *replace_outfile_spec_
static const char *remove_outfile_spec_function (int, const char **);
static const char *version_compare_spec_function (int, const char **);
static const char *include_spec_function (int, const char **);
+static const char *include_noerr_spec_function (int, const char **);
static const char *find_file_spec_function (int, const char **);
static const char *find_plugindir_spec_function (int, const char **);
static const char *print_asm_header_spec_function (int, const char **);
@@ -1357,6 +1358,7 @@ static const struct spec_function static
{ "remove-outfile", remove_outfile_spec_function },
{ "version-compare", version_compare_spec_function },
{ "include", include_spec_function },
+ { "include_noerr", include_noerr_spec_function },
{ "find-file", find_file_spec_function },
{ "find-plugindir", find_plugindir_spec_function },
{ "print-asm-header", print_asm_header_spec_function },
@@ -6480,6 +6482,8 @@ main (int argc, char **argv)
if (access (specs_file, R_OK) == 0)
read_specs (specs_file, true, false);
+ do_self_spec ("%:include_noerr(defaults.spec)%(default_spec)");
+
/* Process any configure-time defaults specified for the command line
options, via OPTION_DEFAULT_SPECS. */
for (i = 0; i < ARRAY_SIZE (option_default_specs); i++)
@@ -8401,6 +8405,21 @@ get_random_number (void)
return ret ^ getpid ();
}
+static const char *
+include_noerr_spec_function (int argc, const char **argv)
+{
+ char *file;
+
+ if (argc != 1)
+ abort ();
+
+ file = find_a_file (&startfile_prefixes, argv[0], R_OK, 0);
+ if (file)
+ read_specs (file, FALSE, TRUE);
+
+ return NULL;
+}
+
/* %:compare-debug-dump-opt spec function. Save the last argument,
expected to be the last -fdump-final-insns option, or generate a
temporary. */

3167
gcc.spec.in Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,31 @@
varasm.c: Always output flags in merged .section for LLVM assembler compatibility [PR97827]
For compatibility with LLVM 11's 'mc' assembler, the flags have to be
repeated every time. See also LLVM Bug 48201 for this issue and
https://reviews.llvm.org/D73999 for the patch causing the issue.
gcc/
PR target/97827
* varasm.c (default_elf_asm_named_section): Always output all
flags if SECTION_MERGE, even if already declared before.
diff --git a/gcc/varasm.cc b/gcc/varasm.cc
index 21be03aeba2..9cb46885aa5 100644
--- a/gcc/varasm.cc
+++ b/gcc/varasm.cc
@@ -6792,10 +6792,13 @@ default_elf_asm_named_section (const char *name, unsigned int flags,
/* If we have already declared this section, we can use an
abbreviated form to switch back to it -- unless this section is
part of a COMDAT groups or with SHF_GNU_RETAIN or with SHF_LINK_ORDER,
- in which case GAS requires the full declaration every time. */
+ in which case GAS requires the full declaration every time.
+ LLVM's MC linker requires that the
+ flags are identical, thus avoid the abbreviated form with MERGE. */
if (!(HAVE_COMDAT_GROUP && (flags & SECTION_LINKONCE))
&& !(flags & (SECTION_RETAIN | SECTION_LINK_ORDER))
- && (flags & SECTION_DECLARED))
+ && (flags & SECTION_DECLARED)
+ && !(flags & SECTION_MERGE))
{
fprintf (asm_out_file, "\t.section\t%s\n", name);
return;

View File

@ -0,0 +1,22 @@
diff --git a/gcc/config/gcn/gcn.cc b/gcc/config/gcn/gcn.cc
index 6d02a4a02..d77f66182 100644
--- a/gcc/config/gcn/gcn.cc
+++ b/gcc/config/gcn/gcn.cc
@@ -6413,9 +6413,17 @@ gcn_dwarf_register_span (rtx rtl)
return p;
}
+static void
+gcn_override_options_after_change (void)
+{
+ flag_reorder_blocks_and_partition = 0;
+}
+
/* }}} */
/* {{{ TARGET hook overrides. */
+#undef TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE
+#define TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE gcn_override_options_after_change
#undef TARGET_ADDR_SPACE_ADDRESS_MODE
#define TARGET_ADDR_SPACE_ADDRESS_MODE gcn_addr_space_address_mode
#undef TARGET_ADDR_SPACE_DEBUG

View File

@ -0,0 +1,29 @@
diff --git a/gcc/defaults.h b/gcc/defaults.h
index 376687d91b1..613003eb14f 100644
--- a/gcc/defaults.h
+++ b/gcc/defaults.h
@@ -1444,7 +1444,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
/* When generating dwarf info, the default standard version we'll honor
and advertise in absence of -gdwarf-<N> on the command line. */
#ifndef DWARF_VERSION_DEFAULT
-#define DWARF_VERSION_DEFAULT 5
+#define DWARF_VERSION_DEFAULT 4
#endif
#ifndef USED_FOR_TARGET
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 04ca9d9b02b..944019edbc1 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -11255,9 +11255,8 @@ possible.
@itemx -gdwarf-@var{version}
Produce debugging information in DWARF format (if that is supported).
The value of @var{version} may be either 2, 3, 4 or 5; the default
-version for most targets is 5 (with the exception of VxWorks, TPF and
-Darwin/Mac OS X, which default to version 2, and AIX, which defaults
-to version 4).
+version for most targets is 4 (with the exception of VxWorks, TPF and
+Darwin/Mac OS X, which default to version 2).
Note that with DWARF Version 2, some ports require and always
use some non-conflicting DWARF 3 extensions in the unwind tables.

58
gcc13-bsc1216664.patch Normal file
View File

@ -0,0 +1,58 @@
From 7562f089a190953b8ef615b90b7b0520e812a930 Mon Sep 17 00:00:00 2001
From: Richard Biener <rguenther@suse.de>
Date: Mon, 6 Nov 2023 11:31:40 +0100
Subject: [PATCH] libstdc++/112351 - deal with __gthread_once failure during
locale init
To: gcc-patches@gcc.gnu.org
The following makes the C++98 locale init path follow the way the
C++11 performs initialization. This way we deal with pthread_once
failing, falling back to non-threadsafe initialization which, given we
initialize from the library, should be serialized by the dynamic
loader already.
PR libstdc++/112351
libstdc++-v3/
* src/c++98/locale.cc (locale::facet::_S_initialize_once):
Check whether _S_c_locale is already initialized.
(locale::facet::_S_get_c_locale): Always perform non-threadsafe
init when threadsafe init failed.
---
libstdc++-v3/src/c++98/locale.cc | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/libstdc++-v3/src/c++98/locale.cc b/libstdc++-v3/src/c++98/locale.cc
index d308140bab7..1ef0c394cd7 100644
--- a/libstdc++-v3/src/c++98/locale.cc
+++ b/libstdc++-v3/src/c++98/locale.cc
@@ -206,6 +206,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
void
locale::facet::_S_initialize_once()
{
+ // Need to check this because we could get called once from
+ // _S_get_c_locale() when the program is single-threaded, and then again
+ // (via __gthread_once) when it's multi-threaded.
+ if (_S_c_locale)
+ return;
+
// Initialize the underlying locale model.
_S_create_c_locale(_S_c_locale, _S_c_name);
}
@@ -216,12 +222,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
#ifdef __GTHREADS
if (__gthread_active_p())
__gthread_once(&_S_once, _S_initialize_once);
- else
#endif
- {
- if (!_S_c_locale)
- _S_initialize_once();
- }
+ if (__builtin_expect (!_S_c_locale, 0))
+ _S_initialize_once();
return _S_c_locale;
}
--
2.35.3

View File

@ -0,0 +1,158 @@
From 441d0aa048a51d2e9c4f4227916d2a1a2f06b4e5 Mon Sep 17 00:00:00 2001
From: Jan Hubicka <jh@suse.cz>
Date: Wed, 24 Jan 2024 18:13:17 +0100
Subject: [PATCH] Add -fmin-function-alignmnet
To: gcc-patches@gcc.gnu.org
-falign-functions is ignored in cold code, since it is an optimization intended to
improve instruction prefetch. In some case it is necessary to force alignment for
all functions, so this patch adds -fmin-function-alignment for this purpose.
gcc/ChangeLog:
PR middle-end/88345
* common.opt: (flimit-function-alignment): Reorder alphabeticaly
(fmin-function-alignment): New parameter.
* doc/invoke.texi: (-fmin-function-alignment): Document.
(-falign-functions,-falign-loops,-falign-labels): Mention that
aglinments are ignored in cold code.
* varasm.cc (assemble_start_function): Handle min-function-alignment.
* lto-streamer.h (LTO_minor_version): Bump.
---
gcc/common.opt | 10 +++++++---
gcc/doc/invoke.texi | 18 +++++++++++++++++-
gcc/lto-streamer.h | 2 +-
gcc/varasm.cc | 5 +++++
4 files changed, 30 insertions(+), 5 deletions(-)
diff --git a/gcc/common.opt b/gcc/common.opt
index 862c474d3c8..5d35391b99f 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -1027,9 +1027,6 @@ Align the start of functions.
falign-functions=
Common RejectNegative Joined Var(str_align_functions) Optimization
-flimit-function-alignment
-Common Var(flag_limit_function_alignment) Optimization Init(0)
-
falign-jumps
Common Var(flag_align_jumps) Optimization
Align labels which are only reached by jumping.
@@ -2165,6 +2162,10 @@ fmessage-length=
Common RejectNegative Joined UInteger
-fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping.
+fmin-function-alignment=
+Common Joined RejectNegative UInteger Var(flag_min_function_alignment) Optimization
+Align the start of every function.
+
fmodulo-sched
Common Var(flag_modulo_sched) Optimization
Perform SMS based modulo scheduling before the first scheduling pass.
@@ -2489,6 +2490,9 @@ starts and when the destructor finishes.
flifetime-dse=
Common Joined RejectNegative UInteger Var(flag_lifetime_dse) Optimization IntegerRange(0, 2)
+flimit-function-alignment
+Common Var(flag_limit_function_alignment) Optimization Init(0)
+
flive-patching
Common RejectNegative Alias(flive-patching=,inline-clone) Optimization
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index b777fc92755..d39cb26326c 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -531,6 +531,7 @@ Objective-C and Objective-C++ Dialects}.
-falign-jumps[=@var{n}[:@var{m}:[@var{n2}[:@var{m2}]]]]
-falign-labels[=@var{n}[:@var{m}:[@var{n2}[:@var{m2}]]]]
-falign-loops[=@var{n}[:@var{m}:[@var{n2}[:@var{m2}]]]]
+-fmin-function-alignment=[@var{n}]
-fno-allocation-dce -fallow-store-data-races
-fassociative-math -fauto-profile -fauto-profile[=@var{path}]
-fauto-inc-dec -fbranch-probabilities
@@ -13650,6 +13651,9 @@ Align the start of functions to the next power-of-two greater than or
equal to @var{n}, skipping up to @var{m}-1 bytes. This ensures that at
least the first @var{m} bytes of the function can be fetched by the CPU
without crossing an @var{n}-byte alignment boundary.
+This is an optimization of code performance and alignment is ignored for
+functions considered cold. If alignment is required for all functions,
+use @option{-fmin-function-alignment}.
If @var{m} is not specified, it defaults to @var{n}.
@@ -13713,6 +13717,8 @@ Enabled at levels @option{-O2}, @option{-O3}.
Align loops to a power-of-two boundary. If the loops are executed
many times, this makes up for any execution of the dummy padding
instructions.
+This is an optimization of code performance and alignment is ignored for
+loops considered cold.
If @option{-falign-labels} is greater than this value, then its value
is used instead.
@@ -13735,6 +13741,8 @@ Enabled at levels @option{-O2}, @option{-O3}.
Align branch targets to a power-of-two boundary, for branch targets
where the targets can only be reached by jumping. In this case,
no dummy operations need be executed.
+This is an optimization of code performance and alignment is ignored for
+jumps considered cold.
If @option{-falign-labels} is greater than this value, then its value
is used instead.
@@ -13748,6 +13756,14 @@ The maximum allowed @var{n} option value is 65536.
Enabled at levels @option{-O2}, @option{-O3}.
+@opindex fmin-function-alignment=@var{n}
+@item -fmin-function-alignment
+Specify minimal alignment of functions to the next power-of-two greater than or
+equal to @var{n}. Unlike @option{-falign-functions} this alignment is applied
+also to all functions (even those considered cold). The alignment is also not
+affected by @option{-flimit-function-alignment}
+
+
@opindex fno-allocation-dce
@item -fno-allocation-dce
Do not remove unused C++ allocations in dead code elimination.
@@ -13844,7 +13860,7 @@ To use the link-time optimizer, @option{-flto} and optimization
options should be specified at compile time and during the final link.
It is recommended that you compile all the files participating in the
same link with the same options and also specify those options at
-link time.
+link time.
For example:
@smallexample
diff --git a/gcc/lto-streamer.h b/gcc/lto-streamer.h
index 75cebcd02d3..2827897cc7a 100644
--- a/gcc/lto-streamer.h
+++ b/gcc/lto-streamer.h
@@ -122,7 +122,7 @@ along with GCC; see the file COPYING3. If not see
form followed by the data for the string. */
#define LTO_major_version GCC_major_version
-#define LTO_minor_version 1
+#define LTO_minor_version 2
typedef unsigned char lto_decl_flags_t;
diff --git a/gcc/varasm.cc b/gcc/varasm.cc
index cd0cd88321c..5de821b63e6 100644
--- a/gcc/varasm.cc
+++ b/gcc/varasm.cc
@@ -1914,6 +1914,11 @@ assemble_start_function (tree decl, const char *fnname)
/* Tell assembler to move to target machine's alignment for functions. */
align = floor_log2 (align / BITS_PER_UNIT);
+ /* Handle forced alignment. This really ought to apply to all functions,
+ since it is used by patchable entries. */
+ if (flag_min_function_alignment)
+ align = MAX (align, floor_log2 (flag_min_function_alignment));
+
if (align > 0)
{
ASM_OUTPUT_ALIGN (asm_out_file, align);
--
2.35.3

19
gcc13-rpmlintrc Normal file
View File

@ -0,0 +1,19 @@
# This line is mandatory to access the configuration functions
from Config import *
# gcc/gcc-c++ are devel packages even if not called -devel...
addFilter ("gcc.*devel-file-in-non-devel-package")
addFilter ("gcc.*devel-dependency glibc-devel")
addFilter ("gcc.*devel-dependency libstdc")
# libstdc++6-devel is the devel package of libstdc++6, no better name exists
# and we do package static libs and the .so links (but in a gcc versioned
# directory)
addFilter ("libstdc.*shlib-policy-missing-lib")
# We have names lib libgcc_s1-gcc7 for non-default GCCs
addFilter ("shlib-policy-name-error")
addFilter ("shlib-legacy-policy-name-error")
# Packages provide libgcc_s1 = $version and conflict with other providers
# of libgcc_s1
addFilter ("conflicts-with-provides")
# SLE12 rpmlint complains about valid SPDX licenses
addFilter ("invalid-license")

View File

@ -0,0 +1,142 @@
From b9ab7f38227b8980b09537ed1fc45632d7b4b0ea Mon Sep 17 00:00:00 2001
From: Fangrui Song <i@maskray.me>
Date: Fri, 28 Apr 2023 09:59:17 -0700
Subject: [PATCH] Remove crypt and crypt_r interceptors
To: gcc-patches@gcc.gnu.org
From Florian Weimer's D144073
> On GNU/Linux (glibc), the crypt and crypt_r functions are not part of the main shared object (libc.so.6), but libcrypt (with multiple possible sonames). The sanitizer libraries do not depend on libcrypt, so it can happen that during sanitizer library initialization, no real implementation will be found because the crypt, crypt_r functions are not present in the process image (yet). If its interceptors are called nevertheless, this results in a call through a null pointer when the sanitizer library attempts to forward the call to the real implementation.
>
> Many distributions have already switched to libxcrypt, a library that is separate from glibc and that can be build with sanitizers directly (avoiding the need for interceptors). This patch disables building the interceptor for glibc targets.
Let's remove crypt and crypt_r interceptors (D68431) to fix issues with
newer glibc.
For older glibc, msan will not know that an uninstrumented crypt_r call
initializes `data`, so there is a risk for false positives. However, with some
codebase survey, I think crypt_r uses are very few and the call sites typically
have a `memset(&data, 0, sizeof(data));` anyway.
Fix https://github.com/google/sanitizers/issues/1365
Related: https://bugzilla.redhat.com/show_bug.cgi?id=2169432
Reviewed By: #sanitizers, fweimer, thesamesam, vitalybuka
Differential Revision: https://reviews.llvm.org/D149403
---
.../sanitizer_common_interceptors.inc | 37 -------------------
.../sanitizer_platform_interceptors.h | 2 -
.../sanitizer_platform_limits_posix.cpp | 8 ----
.../sanitizer_platform_limits_posix.h | 1 -
4 files changed, 48 deletions(-)
diff --git a/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc b/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc
index ba4b80081f0..662c4199742 100644
--- a/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc
+++ b/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc
@@ -10187,41 +10187,6 @@ INTERCEPTOR(SSIZE_T, getrandom, void *buf, SIZE_T buflen, unsigned int flags) {
#define INIT_GETRANDOM
#endif
-#if SANITIZER_INTERCEPT_CRYPT
-INTERCEPTOR(char *, crypt, char *key, char *salt) {
- void *ctx;
- COMMON_INTERCEPTOR_ENTER(ctx, crypt, key, salt);
- COMMON_INTERCEPTOR_READ_RANGE(ctx, key, internal_strlen(key) + 1);
- COMMON_INTERCEPTOR_READ_RANGE(ctx, salt, internal_strlen(salt) + 1);
- char *res = REAL(crypt)(key, salt);
- if (res != nullptr)
- COMMON_INTERCEPTOR_INITIALIZE_RANGE(res, internal_strlen(res) + 1);
- return res;
-}
-#define INIT_CRYPT COMMON_INTERCEPT_FUNCTION(crypt);
-#else
-#define INIT_CRYPT
-#endif
-
-#if SANITIZER_INTERCEPT_CRYPT_R
-INTERCEPTOR(char *, crypt_r, char *key, char *salt, void *data) {
- void *ctx;
- COMMON_INTERCEPTOR_ENTER(ctx, crypt_r, key, salt, data);
- COMMON_INTERCEPTOR_READ_RANGE(ctx, key, internal_strlen(key) + 1);
- COMMON_INTERCEPTOR_READ_RANGE(ctx, salt, internal_strlen(salt) + 1);
- char *res = REAL(crypt_r)(key, salt, data);
- if (res != nullptr) {
- COMMON_INTERCEPTOR_WRITE_RANGE(ctx, data,
- __sanitizer::struct_crypt_data_sz);
- COMMON_INTERCEPTOR_INITIALIZE_RANGE(res, internal_strlen(res) + 1);
- }
- return res;
-}
-#define INIT_CRYPT_R COMMON_INTERCEPT_FUNCTION(crypt_r);
-#else
-#define INIT_CRYPT_R
-#endif
-
#if SANITIZER_INTERCEPT_GETENTROPY
INTERCEPTOR(int, getentropy, void *buf, SIZE_T buflen) {
void *ctx;
@@ -10772,8 +10737,6 @@ static void InitializeCommonInterceptors() {
INIT_GETUSERSHELL;
INIT_SL_INIT;
INIT_GETRANDOM;
- INIT_CRYPT;
- INIT_CRYPT_R;
INIT_GETENTROPY;
INIT_QSORT;
INIT_QSORT_R;
diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_interceptors.h b/libsanitizer/sanitizer_common/sanitizer_platform_interceptors.h
index 8307b1ec28b..d50166ee6ce 100644
--- a/libsanitizer/sanitizer_common/sanitizer_platform_interceptors.h
+++ b/libsanitizer/sanitizer_common/sanitizer_platform_interceptors.h
@@ -571,8 +571,6 @@
#define SANITIZER_INTERCEPT_FDEVNAME SI_FREEBSD
#define SANITIZER_INTERCEPT_GETUSERSHELL (SI_POSIX && !SI_ANDROID)
#define SANITIZER_INTERCEPT_SL_INIT (SI_FREEBSD || SI_NETBSD)
-#define SANITIZER_INTERCEPT_CRYPT (SI_POSIX && !SI_ANDROID)
-#define SANITIZER_INTERCEPT_CRYPT_R (SI_LINUX && !SI_ANDROID)
#define SANITIZER_INTERCEPT_GETRANDOM \
((SI_LINUX && __GLIBC_PREREQ(2, 25)) || SI_FREEBSD)
diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
index c85cf1626a7..bcbd143d19d 100644
--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
@@ -176,10 +176,6 @@ typedef struct user_fpregs elf_fpregset_t;
# include "sanitizer_platform_interceptors.h"
# include "sanitizer_platform_limits_posix.h"
-#if SANITIZER_INTERCEPT_CRYPT_R
-#include <crypt.h>
-#endif
-
namespace __sanitizer {
unsigned struct_utsname_sz = sizeof(struct utsname);
unsigned struct_stat_sz = sizeof(struct stat);
@@ -283,10 +279,6 @@ namespace __sanitizer {
unsigned struct_statvfs64_sz = sizeof(struct statvfs64);
#endif // SANITIZER_LINUX && !SANITIZER_ANDROID
-#if SANITIZER_INTERCEPT_CRYPT_R
- unsigned struct_crypt_data_sz = sizeof(struct crypt_data);
-#endif
-
#if SANITIZER_LINUX && !SANITIZER_ANDROID
unsigned struct_timex_sz = sizeof(struct timex);
unsigned struct_msqid_ds_sz = sizeof(struct msqid_ds);
diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
index 44dd3d9e22d..29ebb304a9b 100644
--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
@@ -319,7 +319,6 @@ extern unsigned struct_msqid_ds_sz;
extern unsigned struct_mq_attr_sz;
extern unsigned struct_timex_sz;
extern unsigned struct_statvfs_sz;
-extern unsigned struct_crypt_data_sz;
#endif // SANITIZER_LINUX && !SANITIZER_ANDROID
struct __sanitizer_iovec {
--
2.35.3

View File

@ -0,0 +1,10 @@
# This line is mandatory to access the configuration functions
from Config import *
# Currently gotools.log contains $RPM_BUILD_ROOT and there's nothing
# to be done about that and neither do we care
addFilter ("gcc.*-testresults.*file-contains-buildroot")
# The package should _not_ be noarch, testresults differ from architecture
# to architecture
addFilter ("gcc.*-testresults.*no-binary")

1018
gcc13-testresults.spec Normal file

File diff suppressed because it is too large Load Diff

449
gcc13.changes Normal file
View File

@ -0,0 +1,449 @@
-------------------------------------------------------------------
Thu Feb 8 08:17:53 UTC 2024 - Richard Biener <rguenther@suse.com>
- Add gcc13-sanitizer-remove-crypt-interception.patch to remove
crypt and crypt_r interceptors. The crypt API change in SLE15 SP3
breaks them. [bsc#1219520]
-------------------------------------------------------------------
Tue Feb 6 08:04:04 UTC 2024 - Richard Biener <rguenther@suse.com>
- Update to gcc-13 branch head, 67ac78caf31f7cb3202177e642, git8285
- Add gcc13-pr88345-min-func-alignment.diff to add support for
-fmin-function-alignment. [bsc#1214934]
-------------------------------------------------------------------
Mon Feb 5 14:24:16 UTC 2024 - Richard Biener <rguenther@suse.com>
- Use %{_target_cpu} to determine host and build.
-------------------------------------------------------------------
Thu Jan 25 07:59:39 UTC 2024 - Richard Biener <rguenther@suse.com>
- Update to gcc-13 branch head, fc7d87e0ffadca49bec29b2107, git8250
* Includes fix for building TVM. [boo#1218492]
-------------------------------------------------------------------
Mon Jan 22 10:05:20 UTC 2024 - Richard Biener <rguenther@suse.com>
- Add cross-X-newlib-devel requires to newlib cross compilers.
[boo#1219031]
-------------------------------------------------------------------
Thu Jan 18 14:14:46 UTC 2024 - Richard Biener <rguenther@suse.com>
- Package m2rte.so plugin in the gcc13-m2 sub-package rather than
in gcc13-devel. [boo#1210959]
- Require libstdc++6-devel-gcc13 from gcc13-m2 as m2 programs
are linked against libstdc++6.
-------------------------------------------------------------------
Tue Jan 9 14:20:57 UTC 2024 - Richard Biener <rguenther@suse.com>
- Update to gcc-13 branch head, 36ddb5230f56a30317630a928, git8205
-------------------------------------------------------------------
Thu Nov 30 11:43:17 UTC 2023 - Richard Biener <rguenther@suse.com>
- Update to gcc-13 branch head, 741743c028dc00f27b9c8b1d5, git8109
* Includes fix for building mariadb on i686. [bsc#1217667]
* Remove pr111411.patch contained in the update.
-------------------------------------------------------------------
Fri Nov 24 08:49:50 UTC 2023 - Richard Biener <rguenther@suse.com>
- Avoid update-alternatives dependency for accelerator crosses.
- Package tool links to llvm in cross-amdgcn-gcc13 rather than in
cross-amdgcn-newlib13-devel since that also has the dependence.
- Depend on llvmVER instead of llvm with VER equal to
%product_libs_llvm_ver where available and adjust tool discovery
accordingly. This should also properly trigger re-builds when
the patchlevel version of llvmVER changes, possibly changing
the binary names we link to. [bsc#1217450]
-------------------------------------------------------------------
Tue Nov 7 12:57:49 UTC 2023 - Richard Biener <rguenther@suse.com>
- Add gcc13-bsc1216664.patch, works around SAP ASE DB crash during
C++ standard library initialization. [bsc#1216664]
-------------------------------------------------------------------
Fri Sep 22 08:07:30 UTC 2023 - Dirk Müller <dmueller@suse.com>
- add pr111411.patch (bsc#1215427)
-------------------------------------------------------------------
Tue Sep 12 17:52:25 UTC 2023 - Richard Biener <rguenther@suse.com>
- Bump to b96e66fd4ef3e36983969fb8cdd1956f551a074b, git7831
* Includes many bugfixes
* Includes fix to -fstack-protector issues with variable
length stack allocations on aarch64. [bsc#1214052] (CVE-2023-4039)
-------------------------------------------------------------------
Mon Aug 28 07:59:17 UTC 2023 - Richard Biener <rguenther@suse.com>
- Disable building glibc cross compilers on SLE based code streams,
the required cross-glibc packages are not available there.
- Disable building avr cross on non-openSUSE code streams since
avr-libc isn't available there.
- Disable building newlib cross compilers on non-openSUSE code streams
since newlib isn't available there.
- Fix typo preventing s390x compiler build.
- Raise s390x architecture baseline to z14 for ALP. [PED-253]
- Turn cross compiler to ppc64le to a glibc cross.
-------------------------------------------------------------------
Wed Aug 23 06:50:07 UTC 2023 - Richard Biener <rguenther@suse.com>
- Turn cross compiler to s390x to a glibc cross. [bsc#1214460]
-------------------------------------------------------------------
Fri Aug 18 13:03:36 UTC 2023 - Michal Suchanek <msuchanek@suse.com>
- Raise Power architecture baseline to Power9 only for ALP (boo#1213915).
-------------------------------------------------------------------
Thu Aug 3 13:34:26 UTC 2023 - Richard Biener <rguenther@suse.com>
- Bump to cc279d6c64562f05019e1d12d0d825f9391b5553, git7683
* Includes GCC 13.2 release
* Includes patch to fix broken testcase in libbacktrace, fixing
build problems on SLES 12
-------------------------------------------------------------------
Wed Aug 2 08:01:18 UTC 2023 - Andreas Schwab <schwab@suse.de>
- gdcflags.patch: Use substituted GDCFLAGS
- Filter out -Werror=return-type from D compile flags
-------------------------------------------------------------------
Thu Jul 20 09:04:51 UTC 2023 - Richard Biener <rguenther@suse.com>
- Bump to 9aac37ab8a7b919a89c6d64bc7107a8436996e93, git7597
* GCC 13.2 RC1
- Add rpmlint filter for SLE12 complaining about invalid licenses.
-------------------------------------------------------------------
Tue Jul 11 14:33:29 UTC 2023 - Andreas Schwab <schwab@suse.de>
- Also handle -static-pie in the default-PIE specs
-------------------------------------------------------------------
Mon Jul 10 08:12:40 UTC 2023 - Richard Biener <rguenther@suse.com>
- Bump to f9781fcf733ca3afe5b5811afd8ecbb18d9d3a11, git7552
- Remove gcc13-pr110334.patch again as it breaks libreoffice build.
-------------------------------------------------------------------
Wed Jun 28 06:56:52 UTC 2023 - Richard Biener <rguenther@suse.com>
- Bump to a533ded17fb13cbbb2fa5133ecd470360f66c5cf, git7489.
- Add gcc13-pr110334.patch to fix missed optimization in Skia
resulting in Firefox crashes when building with LTO. [boo#1212101]
-------------------------------------------------------------------
Tue Jun 13 09:22:50 UTC 2023 - Richard Biener <rguenther@suse.com>
- Raise architecture levels for ALP. [PED-153]
* Raise POWER architecture baseline to power9. [PED-2005]
* Raise x86-64 architecture baseline to x86-64-v2 for ALP. [PED-252]
* Delay raising s390x architecture baseline to z14. [PED-253]
-------------------------------------------------------------------
Mon May 22 09:05:30 UTC 2023 - Richard Biener <rguenther@suse.com>
- Bump to dd36656ada05731c069ecd5b1878380294fb1f3e, git7364.
* Includes the RISC-V atomic changes
- Remove riscv-atomic.patch and riscv-pthread.patch now included
- Make libstdc++6-devel packages own their directories since they
can be installed standalone. [bsc#1211427]
-------------------------------------------------------------------
Thu Apr 27 07:29:05 UTC 2023 - Richard Biener <rguenther@suse.com>
- Bump to 910735c5d7ce7607384fc1eec4189e90c8ae5c84, git7256.
* Includes GCC 13.1 release and first bugfixes
- Update riscv-atomic.patch from the version committed upstream.
-------------------------------------------------------------------
Fri Apr 21 06:46:36 UTC 2023 - Richard Biener <rguenther@suse.com>
- Bump to f980561c60b0446cc427595198d7f3f4f90e0924, git7231.
* fixes compile-time issue reported in [bsc#1210557]
* GCC 13.1 RC3
- Disable building the rust frontend.
-------------------------------------------------------------------
Wed Apr 12 21:15:13 UTC 2023 - Martin Liška <mliska@suse.cz>
- Bump to d339e9802f758e051b0a1ef6db732ff846cbf4e3, git7162.
-------------------------------------------------------------------
Tue Apr 11 08:58:11 UTC 2023 - Martin Liška <mliska@suse.cz>
- Add new x86-related intrinsics (amxcomplexintrin.h).
-------------------------------------------------------------------
Tue Apr 11 08:29:47 UTC 2023 - Andreas Schwab <schwab@suse.de>
- riscv-atomic.patch: RISC-V: Add support for inlining subword atomic
operations
- riscv-pthread.patch: Don't add -latomic with -pthread
-------------------------------------------------------------------
Tue Apr 4 07:02:21 UTC 2023 - Martin Liška <mliska@suse.cz>
- Bump to d0b961b802dd7d9d555ff4515835a479329326e9, git6995.
-------------------------------------------------------------------
Fri Mar 24 14:44:48 UTC 2023 - Guillaume GARDET <guillaume.gardet@opensuse.org>
- Add %limit_build for gcc13 to avoid OOM
-------------------------------------------------------------------
Fri Mar 24 13:37:38 UTC 2023 - Martin Liška <mliska@suse.cz>
- Use --enable-link-serialization rather that --enable-link-mutex,
the benefit of the former one is that the linker jobs are not
holding tokens of the make's jobserver.
-------------------------------------------------------------------
Thu Mar 23 22:14:59 UTC 2023 - Martin Liška <mliska@suse.cz>
- Bump to c4792bd1de0621932a47fb86aca09fafafdb2972, git6840.
-------------------------------------------------------------------
Tue Mar 21 10:45:33 UTC 2023 - Richard Biener <rguenther@suse.com>
- Add cross-bpf packages. See https://gcc.gnu.org/wiki/BPFBackEnd
for the general state of BPF with GCC.
-------------------------------------------------------------------
Tue Mar 21 08:39:35 UTC 2023 - Martin Liška <mliska@suse.cz>
- Bump to 5f413dc41ee4f8bc3a0fc295f98b75dceae52fa8, git6773.
-------------------------------------------------------------------
Mon Feb 27 10:25:35 UTC 2023 - Richard Biener <rguenther@suse.com>
- Always enable the link mutex.
-------------------------------------------------------------------
Mon Feb 27 08:34:33 UTC 2023 - Martin Liška <mliska@suse.cz>
- Bump to 529e03b9882fe48cfa3c182abb12a5858a5762a2, git6353.
-------------------------------------------------------------------
Thu Feb 23 10:26:27 UTC 2023 - Martin Liška <mliska@suse.cz>
- Rebase gcc44-rename-info-files.patch patch.
-------------------------------------------------------------------
Fri Jan 27 10:35:15 UTC 2023 - Martin Liška <mliska@suse.cz>
- Add support for new front-ends Rust and Modula-2.
- Align _multibuild order with gcc12 package.
- Bump to ca8fb0096713a8477614ef874f16ba5bf16c48bc, git5428.
-------------------------------------------------------------------
Mon Jan 23 15:19:53 UTC 2023 - Richard Biener <rguenther@suse.com>
- Add bootstrap conditional to allow --without=bootstrap to be
specified to speed up local builds for testing.
-------------------------------------------------------------------
Mon Jan 23 08:45:24 UTC 2023 - Richard Biener <rguenther@suse.com>
- Bump included newlib to version 4.3.0.
-------------------------------------------------------------------
Thu Jan 19 11:34:00 UTC 2023 - Richard Biener <rguenther@suse.com>
- Update to GCC trunk head (r13-5254-g05b9868b182bb9)
* pulls Go frontend fix to fix build fail on s390x
* pulls upstream fix for PR107678, obsoleting gcc13-pr107678.patch
- Also package libhwasan_preinit.o on aarch64.
-------------------------------------------------------------------
Tue Jan 17 09:30:14 UTC 2023 - Richard Biener <rguenther@suse.com>
- Configure external timezone database provided by the timezone
package. Make libstdc++6 recommend timezone to get a fully
working std::chrono. Install timezone when running the testsuite.
- Remove dependence on doxygen and graphviz when building the
testsuite. Those were used to build the libstdc++ API html
documentation but we stopped shipping that when Java support
was removed and nobody noticed. Purge traces of the built
libstdc++6-gccN-doc package.
- Package libhwasan_preinit.o on x86_64.
-------------------------------------------------------------------
Mon Jan 16 11:59:43 UTC 2023 - Richard Biener <rguenther@suse.com>
- Update to GCC trunk head (r13-5199-g2f81164255bf0d)
* pulls changes up to the start of Stage 4
- Change version numbering to match the commit count from
the git gcc-descr alias
- Add gcc13-pr107678.patch to fix unwinding on aarch64 with
pointer signing. [bsc#1206684]
-------------------------------------------------------------------
Tue Dec 27 11:13:16 UTC 2022 - Ludwig Nussel <lnussel@suse.com>
- Don't rely on %usrmerged, set it based on standard %suse_version
-------------------------------------------------------------------
Thu Dec 22 08:31:14 UTC 2022 - Matwey Kornilov <matwey.kornilov@gmail.com>
- Enable PRU flavour for gcc13
-------------------------------------------------------------------
Mon Dec 19 14:59:32 UTC 2022 - Dirk Müller <dmueller@suse.com>
- update floatn fixinclude pickup to check each header separately (bsc#1206480)
-------------------------------------------------------------------
Wed Dec 14 07:52:36 UTC 2022 - Richard Biener <rguenther@suse.com>
- Redo floatn fixinclude pick-up to simply keep what is there.
-------------------------------------------------------------------
Tue Dec 13 10:34:35 UTC 2022 - Richard Biener <rguenther@suse.com>
- Bump to 0a43f7b1a73c8e3b9cefffe430274d0a3d6d3291, git197351.
- Bump libgo SONAME to libgo22.
- Do not package libhwasan for biarch (32-bit architecture)
as the extension depends on 64-bit pointers.
- Sync cross.spec.in changes from gcc12 package.
-------------------------------------------------------------------
Mon Dec 5 08:01:00 UTC 2022 - Richard Biener <rguenther@suse.com>
- Bump to 380d62c14c99d8df13b7a86660e7ee67d01ad827, git197210.
- Adjust floatn fixincludes guard to work with SLE12 and earlier
SLE15.
-------------------------------------------------------------------
Thu Dec 1 22:09:49 UTC 2022 - Martin Liška <mliska@suse.cz>
- Bump to de144fdab17dbbb64ccb540056ab78b4ffb3fbbc, git197173.
-------------------------------------------------------------------
Thu Dec 1 13:59:05 UTC 2022 - Martin Liška <mliska@suse.cz>
- Depend on at least LLVM 13 for GCN cross compiler.
-------------------------------------------------------------------
Thu Dec 1 05:34:47 UTC 2022 - Martin Liška <mliska@suse.cz>
- Bump to 4304e09a1617bcf1c87f5bc96017ae5017379d75, git197155.
-------------------------------------------------------------------
Thu Dec 1 05:33:14 UTC 2022 - Martin Liška <mliska@suse.cz>
- Rebase gcc44-rename-info-files.patch.
-------------------------------------------------------------------
Wed Nov 30 22:09:37 UTC 2022 - Martin Liška <mliska@suse.cz>
- Bump to d13c359a49291f0a1206adbad4065677010b7e4b, git197143.
-------------------------------------------------------------------
Tue Nov 29 07:06:11 UTC 2022 - Richard Biener <rguenther@suse.com>
- Sync changes from gcc12 package
- Update embedded newlib to version 4.2.0
* includes newlib-4.1.0-aligned_alloc.patch
- Allow cross-pru-gcc12-bootstrap for armv7l architecture.
PRU architecture is used for real-time MCUs embedded into TI
armv7l and aarch64 SoCs. We need to have cross-pru-gcc12 for
armv7l in order to build both host applications and PRU firmware
during the same build.
-------------------------------------------------------------------
Mon Nov 28 22:09:40 UTC 2022 - Martin Liška <mliska@suse.cz>
- Bump to 2b0ae7fb91f64fb005abf7d7903fd4c0764bb45c, git197102.
-------------------------------------------------------------------
Tue Nov 22 07:14:27 UTC 2022 - Martin Liška <mliska@suse.cz>
- Handle new libstdc++exp.a lib.
-------------------------------------------------------------------
Mon Nov 21 22:09:43 UTC 2022 - Martin Liška <mliska@suse.cz>
- Bump to 5c0d171f67d082c353ddc319859111d3b9126c17, git196938.
-------------------------------------------------------------------
Tue Nov 8 11:32:46 UTC 2022 - Martin Liška <mliska@suse.cz>
- Add 2 new headers.
-------------------------------------------------------------------
Mon Nov 7 23:58:33 UTC 2022 - Martin Liška <mliska@suse.cz>
- Bump to b457b779427b0f7b3fbac447811c9c52db5bc79e, git196485.
-------------------------------------------------------------------
Tue Sep 27 15:32:26 UTC 2022 - Martin Liška <mliska@suse.cz>
- Revert --disable-fixincludes due to float128 needed fix.
-------------------------------------------------------------------
Tue Sep 27 15:14:40 UTC 2022 - Martin Liška <mliska@suse.cz>
- Bump to 0b2706ac0e6d6b990d789325f9e081dfe4501f4f, git195623.
-------------------------------------------------------------------
Wed Aug 31 20:04:10 UTC 2022 - Martin Liška <mliska@suse.cz>
- Bump to be9dd80f9334800300a80268dbb92cf3fafcfcf8, git195041.
-------------------------------------------------------------------
Wed Aug 31 20:02:34 UTC 2022 - Martin Liška <mliska@suse.cz>
- Start using --disable-fixincludes.
-------------------------------------------------------------------
Mon Aug 8 18:33:26 UTC 2022 - Martin Liška <mliska@suse.cz>
- Fix workaround for obs-service-format_spec_file.
- Bump version in gcc.spec.in.
-------------------------------------------------------------------
Fri Aug 5 21:07:30 UTC 2022 - Martin Liška <mliska@suse.cz>
- Bump to cc01a27db5411a4fe354a97b7c86703c5bc81243, git194700.
-------------------------------------------------------------------
Thu Apr 28 15:36:41 UTC 2022 - Martin Liška <mliska@suse.cz>
- New package, inherits from gcc12
- Take patches inherited from GCC 12.
* gcc-add-defaultsspec.diff, add the ability to provide a specs
file that is read by default
* tls-no-direct.diff, avoid direct %fs references on x86 to not
slow down Xen
* gcc43-no-unwind-tables.diff, do not produce unwind tables for
CRT files
* gcc41-ppc32-retaddr.patch, fix expansion of __builtin_return_addr
for ppc, just a testcase
* gcc44-textdomain.patch, make translation files version specific
and adjust textdomain to find them
* gcc44-rename-info-files.patch, fix cross-references in info files
when renaming them to be version specific
* gcc48-libstdc++-api-reference.patch, fix link in the installed
libstdc++ html documentation
* gcc48-remove-mpfr-2.4.0-requirement.patch, make GCC work with
earlier mpfr versions on old products
* gcc5-no-return-gcc43-workaround.patch, make build work with
host gcc 4.3
* gcc7-remove-Wexpansion-to-defined-from-Wextra.patch, removes
new warning from -Wextra
* gcc7-avoid-fixinc-error.diff
* gcc9-reproducible-builds-buildid-for-checksum.patch
* gcc9-reproducible-builds.patch
* gcc10-amdgcn-llvm-as.patch

4154
gcc13.spec Normal file

File diff suppressed because it is too large Load Diff

91
gcc41-ppc32-retaddr.patch Normal file
View File

@ -0,0 +1,91 @@
2005-11-28 Jakub Jelinek <jakub@redhat.com>
* config/rs6000/rs6000.c (rs6000_return_addr): If COUNT == 0,
read word RETURN_ADDRESS_OFFSET bytes above arg_pointer_rtx
instead of doing an extran indirection from frame_pointer_rtx.
* gcc.dg/20051128-1.c: New test.
#Index: gcc/config/rs6000/rs6000.cc
#===================================================================
#--- gcc/config/rs6000/rs6000.cc.orig 2013-11-26 15:42:33.000000000 +0100
#+++ gcc/config/rs6000/rs6000.cc 2013-11-26 16:44:14.566089231 +0100
#@@ -20878,18 +20878,22 @@ rs6000_return_addr (int count, rtx frame
if (count != 0
|| ((DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_DARWIN) && flag_pic))
{
+ rtx x;
cfun->machine->ra_needs_full_frame = 1;
- return
- gen_rtx_MEM
- (Pmode,
- memory_address
- (Pmode,
- plus_constant (Pmode,
- copy_to_reg
- (gen_rtx_MEM (Pmode,
- memory_address (Pmode, frame))),
- RETURN_ADDRESS_OFFSET)));
+ if (count == 0)
+ {
+ gcc_assert (frame == frame_pointer_rtx);
+ x = arg_pointer_rtx;
+ }
+ else
+ {
+ x = memory_address (Pmode, frame);
+ x = copy_to_reg (gen_rtx_MEM (Pmode, x));
+ }
+
+ x = plus_constant (Pmode, x, RETURN_ADDRESS_OFFSET);
+ return gen_rtx_MEM (Pmode, memory_address (Pmode, x));
}
cfun->machine->ra_need_lr = 1;
Index: gcc/testsuite/gcc.dg/20051128-1.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gcc/testsuite/gcc.dg/20051128-1.c 2013-11-26 16:44:14.566089231 +0100
@@ -0,0 +1,41 @@
+/* { dg-do run } */
+/* { dg-options "-O2 -fpic" } */
+
+extern void exit (int);
+extern void abort (void);
+
+int b;
+
+struct A
+{
+ void *pad[147];
+ void *ra, *h;
+ long o;
+};
+
+void
+__attribute__((noinline))
+foo (struct A *a, void *x)
+{
+ __builtin_memset (a, 0, sizeof (a));
+ if (!b)
+ exit (0);
+}
+
+void
+__attribute__((noinline))
+bar (void)
+{
+ struct A a;
+
+ __builtin_unwind_init ();
+ foo (&a, __builtin_return_address (0));
+}
+
+int
+main (void)
+{
+ bar ();
+ abort ();
+ return 0;
+}

View File

@ -0,0 +1,13 @@
Index: libgcc/Makefile.in
===================================================================
--- libgcc/Makefile.in.orig 2015-12-14 11:33:03.225790694 +0100
+++ libgcc/Makefile.in 2015-12-17 15:09:45.415136693 +0100
@@ -301,7 +301,7 @@ CRTSTUFF_CFLAGS = -O2 $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -g0 \
$(NO_PIE_CFLAGS) -finhibit-size-directive -fno-inline -fno-exceptions \
-fno-zero-initialized-in-bss -fno-toplevel-reorder -fno-tree-vectorize \
-fbuilding-libgcc -fno-stack-protector $(FORCE_EXPLICIT_EH_REGISTRY) \
- $(INHIBIT_LIBC_CFLAGS) $(USE_TM_CLONE_REGISTRY)
+ $(INHIBIT_LIBC_CFLAGS) $(USE_TM_CLONE_REGISTRY) -fno-unwind-tables -fno-asynchronous-unwind-tables
# Extra flags to use when compiling crt{begin,end}.o.
CRTSTUFF_T_CFLAGS =

View File

@ -0,0 +1,708 @@
#! /bin/sh -e
# DP: Allow transformations on info file names. Reference the
# DP: transformed info file names in the texinfo files.
dir=
if [ $# -eq 3 -a "$2" = '-d' ]; then
pdir="-d $3"
dir="$3/"
elif [ $# -ne 1 ]; then
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
exit 1
fi
case "$1" in
-patch)
patch $pdir -f --no-backup-if-mismatch -p0 < $0
;;
-unpatch)
patch $pdir -f --no-backup-if-mismatch -R -p0 < $0
;;
*)
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
exit 1
esac
exit 0
gcc/ChangeLog:
2004-02-17 Matthias Klose <doko@debian.org>
* Makefile.in: Allow transformations on info file names.
Define MAKEINFODEFS, macros to pass transformated info file
names to makeinfo.
* doc/cpp.texi: Use macros defined in MAKEINFODEFS for references.
* doc/cppinternals.texi: Likewise.
* doc/extend.texi: Likewise.
* doc/gcc.texi: Likewise.
* doc/gccint.texi: Likewise.
* doc/invoke.texi: Likewise.
* doc/libgcc.texi: Likewise.
* doc/makefile.texi: Likewise.
* doc/passes.texi: Likewise.
* doc/sourcebuild.texi: Likewise.
* doc/standards.texi: Likewise.
* doc/trouble.texi: Likewise.
gcc/fortran/ChangeLog:
* Make-lang.in: Allow transformations on info file names.
Pass macros of transformated info file defined in MAKEINFODEFS
names to makeinfo.
* gfortran.texi: Use macros defined in MAKEINFODEFS for references.
gcc/java/ChangeLog:
* Make-lang.in: Allow transformations on info file names.
Pass macros of transformated info file defined in MAKEINFODEFS
names to makeinfo.
* gcj.texi: Use macros defined in MAKEINFODEFS for references.
---
gcc/Makefile.in | 74 ++++++++++++++++++++++++++++++++++++----------
gcc/ada/gnat-style.texi | 2 -
gcc/ada/gnat_rm.texi | 2 -
gcc/ada/gnat_ugn.texi | 2 -
gcc/doc/cpp.texi | 2 -
gcc/doc/cppinternals.texi | 2 -
gcc/doc/extend.texi | 2 -
gcc/doc/gcc.texi | 8 ++--
gcc/doc/gccint.texi | 4 +-
gcc/doc/install.texi | 2 -
gcc/doc/invoke.texi | 10 +++---
gcc/doc/libgcc.texi | 2 -
gcc/doc/makefile.texi | 2 -
gcc/doc/passes.texi | 2 -
gcc/doc/standards.texi | 4 +-
gcc/fortran/Make-lang.in | 11 +++---
gcc/fortran/gfortran.texi | 2 -
gcc/java/Make-lang.in | 19 +++++++++--
gcc/java/gcj.texi | 20 ++++++------
libgomp/Makefile.am | 13 ++++----
libgomp/Makefile.in | 14 ++++----
libgomp/libgomp.texi | 2 -
22 files changed, 131 insertions(+), 70 deletions(-)
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index d8b76d83d68..4f9c274ee38 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -3333,8 +3333,29 @@ install-no-fixedincludes:
doc: $(BUILD_INFO) $(GENERATED_MANPAGES)
-INFOFILES = doc/cpp.info doc/gcc.info doc/gccint.info \
- doc/gccinstall.info doc/cppinternals.info
+INFO_CPP_NAME = $(shell echo cpp|sed '$(program_transform_name)')
+INFO_GCC_NAME = $(shell echo gcc|sed '$(program_transform_name)')
+INFO_GXX_NAME = $(shell echo g++|sed '$(program_transform_name)')
+INFO_GCCINT_NAME = $(shell echo gccint|sed '$(program_transform_name)')
+INFO_GCCINSTALL_NAME = $(shell echo gccinstall|sed '$(program_transform_name)')
+INFO_CPPINT_NAME = $(shell echo cppinternals|sed '$(program_transform_name)')
+
+INFO_FORTRAN_NAME = $(shell echo gfortran|sed '$(program_transform_name)')
+INFO_GCJ_NAME = $(shell echo gcj|sed '$(program_transform_name)')
+INFO_GDC_NAME = $(shell echo gdc|sed '$(program_transform_name)')
+
+INFOFILES = doc/$(INFO_CPP_NAME).info doc/$(INFO_GCC_NAME).info \
+ doc/$(INFO_GCCINT_NAME).info \
+ doc/$(INFO_GCCINSTALL_NAME).info doc/$(INFO_CPPINT_NAME).info
+
+MAKEINFODEFS = -D 'fncpp $(INFO_CPP_NAME)' -D 'fngcc $(INFO_GCC_NAME)' \
+ -D 'fngxx $(INFO_GXX_NAME)' \
+ -D 'fngccint $(INFO_GCCINT_NAME)' \
+ -D 'fngccinstall $(INFO_GCCINSTALL_NAME)' \
+ -D 'fncppint $(INFO_CPPINT_NAME)' \
+ -D 'fngfortran $(INFO_FORTRAN_NAME)' \
+ -D 'fngcj $(INFO_GCJ_NAME)' \
+ -D 'fngdc $(INFO_GDC_NAME)'
info: $(INFOFILES) lang.info @GENINSRC@ srcinfo lang.srcinfo
@@ -3390,21 +3411,41 @@ gcc-vers.texi: $(BASEVER) $(DEVPHASE)
# patterns. To use them, put each of the specific targets with its
# specific dependencies but no build commands.
-doc/cpp.info: $(TEXI_CPP_FILES)
-doc/gcc.info: $(TEXI_GCC_FILES)
-doc/gccint.info: $(TEXI_GCCINT_FILES)
-doc/cppinternals.info: $(TEXI_CPPINT_FILES)
-
+# Generic entry to handle info files, which are not renamed (currently Ada)
doc/%.info: %.texi
if [ x$(BUILD_INFO) = xinfo ]; then \
$(MAKEINFO) $(MAKEINFOFLAGS) -I . -I $(gcc_docdir) \
-I $(gcc_docdir)/include -o $@ $<; \
fi
+doc/$(INFO_CPP_NAME).info: $(TEXI_CPP_FILES)
+ if [ x$(BUILD_INFO) = xinfo ]; then \
+ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir) \
+ -I $(gcc_docdir)/include -o $@ $<; \
+ fi
+
+doc/$(INFO_GCC_NAME).info: $(TEXI_GCC_FILES)
+ if [ x$(BUILD_INFO) = xinfo ]; then \
+ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir) \
+ -I $(gcc_docdir)/include -o $@ $<; \
+ fi
+
+doc/$(INFO_GCCINT_NAME).info: $(TEXI_GCCINT_FILES)
+ if [ x$(BUILD_INFO) = xinfo ]; then \
+ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir) \
+ -I $(gcc_docdir)/include -o $@ $<; \
+ fi
+
+doc/$(INFO_CPPINT_NAME).info: $(TEXI_CPPINT_FILES)
+ if [ x$(BUILD_INFO) = xinfo ]; then \
+ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir) \
+ -I $(gcc_docdir)/include -o $@ $<; \
+ fi
+
# Duplicate entry to handle renaming of gccinstall.info
-doc/gccinstall.info: $(TEXI_GCCINSTALL_FILES)
+doc/$(INFO_GCCINSTALL_NAME).info: $(TEXI_GCCINSTALL_FILES)
if [ x$(BUILD_INFO) = xinfo ]; then \
- $(MAKEINFO) $(MAKEINFOFLAGS) -I $(gcc_docdir) \
+ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir) \
-I $(gcc_docdir)/include -o $@ $<; \
fi
@@ -3815,11 +3856,11 @@ install-driver: installdirs xgcc$(exeext)
# $(INSTALL_DATA) might be a relative pathname, so we can't cd into srcdir
# to do the install.
install-info:: doc installdirs \
- $(DESTDIR)$(infodir)/cpp.info \
- $(DESTDIR)$(infodir)/gcc.info \
- $(DESTDIR)$(infodir)/cppinternals.info \
- $(DESTDIR)$(infodir)/gccinstall.info \
- $(DESTDIR)$(infodir)/gccint.info \
+ $(DESTDIR)$(infodir)/$(INFO_CPP_NAME).info \
+ $(DESTDIR)$(infodir)/$(INFO_GCC_NAME).info \
+ $(DESTDIR)$(infodir)/$(INFO_CPPINT_NAME).info \
+ $(DESTDIR)$(infodir)/$(INFO_GCCINSTALL_NAME).info \
+ $(DESTDIR)$(infodir)/$(INFO_GCCINT_NAME).info \
lang.install-info
$(DESTDIR)$(infodir)/%.info: doc/%.info installdirs
@@ -4058,8 +4099,11 @@ uninstall: lang.uninstall
-rm -rf $(DESTDIR)$(bindir)/$(GCOV_INSTALL_NAME)$(exeext)
-rm -rf $(DESTDIR)$(man1dir)/$(GCC_INSTALL_NAME)$(man1ext)
-rm -rf $(DESTDIR)$(man1dir)/cpp$(man1ext)
- -rm -f $(DESTDIR)$(infodir)/cpp.info* $(DESTDIR)$(infodir)/gcc.info*
- -rm -f $(DESTDIR)$(infodir)/cppinternals.info* $(DESTDIR)$(infodir)/gccint.info*
+ -rm -f $(DESTDIR)$(infodir)/$(INFO_CPP_NAME).info*
+ -rm -f $(DESTDIR)$(infodir)/$(INFO_GCC_NAME).info*
+ -rm -f $(DESTDIR)$(infodir)/$(INFO_CPPINT_NAME).info*
+ -rm -f $(DESTDIR)$(infodir)/$(INFO_GCCINT_NAME).info*
+ -rm -f $(DESTDIR)$(infodir)/$(INFO_GCCINSTALL_NAME).info*
for i in ar nm ranlib ; do \
install_name=`echo gcc-$$i|sed '$(program_transform_name)'`$(exeext) ;\
target_install_name=$(target_noncanonical)-`echo gcc-$$i|sed '$(program_transform_name)'`$(exeext) ; \
diff --git a/gcc/ada/gnat-style.texi b/gcc/ada/gnat-style.texi
index f3b1c29a24f..46bd21535cf 100644
--- a/gcc/ada/gnat-style.texi
+++ b/gcc/ada/gnat-style.texi
@@ -12,7 +12,7 @@
@finalout
@dircategory GNU Ada Tools
@direntry
-* gnat-style: (gnat-style.info). gnat-style
+* gnat-style: (gnat-style-12.info). gnat-style
@end direntry
@c %**end of header
diff --git a/gcc/ada/gnat_rm.texi b/gcc/ada/gnat_rm.texi
index 212ed3df9d8..bed8ce40548 100644
--- a/gcc/ada/gnat_rm.texi
+++ b/gcc/ada/gnat_rm.texi
@@ -12,7 +12,7 @@
@finalout
@dircategory GNU Ada Tools
@direntry
-* gnat_rm: (gnat_rm.info). gnat_rm
+* GNAT Reference Manual: (gnat_rm-12). Reference Manual for GNU Ada tools.
@end direntry
@c %**end of header
diff --git a/gcc/ada/gnat_ugn.texi b/gcc/ada/gnat_ugn.texi
index a1daff92fbe..514931ec139 100644
--- a/gcc/ada/gnat_ugn.texi
+++ b/gcc/ada/gnat_ugn.texi
@@ -12,7 +12,7 @@
@finalout
@dircategory GNU Ada Tools
@direntry
-* gnat_ugn: (gnat_ugn.info). gnat_ugn
+* User's Guide: (gnat_ugn-12).
@end direntry
@c %**end of header
diff --git a/gcc/d/Make-lang.in b/gcc/d/Make-lang.in
index 1679fb81097..6845aa67d43 100644
--- a/gcc/d/Make-lang.in
+++ b/gcc/d/Make-lang.in
@@ -247,10 +247,11 @@ D_TEXI_FILES = \
$(gcc_docdir)/include/gcc-common.texi \
gcc-vers.texi
-doc/gdc.info: $(D_TEXI_FILES)
+INFO_GDC_NAME = $(shell echo gdc|sed '$(program_transform_name)')
+doc/$(INFO_GDC_NAME).info: $(D_TEXI_FILES)
if test "x$(BUILD_INFO)" = xinfo; then \
- rm -f doc/gdc.info*; \
- $(MAKEINFO) $(MAKEINFOFLAGS) -I $(gcc_docdir) \
+ rm -f doc/$(INFO_GDC_NAME).info*; \
+ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir) \
-I $(gcc_docdir)/include -o $@ $<; \
else true; fi
@@ -275,11 +276,11 @@ gdc.pod: d/gdc.texi
d.all.cross: gdc-cross$(exeext)
d.start.encap: gdc$(exeext)
d.rest.encap:
-d.info: doc/gdc.info
+d.info: doc/$(INFO_GDC_NAME).info
d.dvi: doc/gdc.dvi
d.pdf: doc/gdc.pdf
d.html: $(build_htmldir)/gdc/index.html
-d.srcinfo: doc/gdc.info
+d.srcinfo: doc/$(INFO_GDC_NAME).info
-cp -p $^ $(srcdir)/doc
d.srcextra:
@@ -320,7 +321,7 @@ d.install-common: installdirs
d.install-plugin:
-d.install-info: $(DESTDIR)$(infodir)/gdc.info
+d.install-info: $(DESTDIR)$(infodir)/$(INFO_GDC_NAME).info
d.install-pdf: doc/gdc.pdf
@$(NORMAL_INSTALL)
@@ -370,7 +371,7 @@ d.uninstall:
-rm -rf $(DESTDIR)$(bindir)/$(D_INSTALL_NAME)$(exeext)
-rm -rf $(DESTDIR)$(man1dir)/$(D_INSTALL_NAME)$(man1ext)
-rm -rf $(DESTDIR)$(bindir)/$(D_TARGET_INSTALL_NAME)$(exeext)
- -rm -rf $(DESTDIR)$(infodir)/gdc.info*
+ -rm -rf $(DESTDIR)$(infodir)/$(INFO_GDC_NAME).info*
# Clean hooks.
diff --git a/gcc/d/gdc.texi b/gcc/d/gdc.texi
index 24b6ee00478..1a35bb099e6 100644
--- a/gcc/d/gdc.texi
+++ b/gcc/d/gdc.texi
@@ -38,7 +38,7 @@ man page gfdl(7).
@format
@dircategory Software development
@direntry
-* gdc: (gdc). A GCC-based compiler for the D language
+* @value{fngdc}: (@value{fngdc}). A GCC-based compiler for the D language
@end direntry
@end format
diff --git a/gcc/doc/cpp.texi b/gcc/doc/cpp.texi
index b0a2ce3ac6b..922a1c95181 100644
--- a/gcc/doc/cpp.texi
+++ b/gcc/doc/cpp.texi
@@ -50,7 +50,7 @@ This manual contains no Invariant Sections. The Front-Cover Texts are
@ifinfo
@dircategory Software development
@direntry
-* Cpp: (cpp). The GNU C preprocessor.
+* @value{fncpp}: (@value{fncpp}). The GNU C preprocessor.
@end direntry
@end ifinfo
diff --git a/gcc/doc/cppinternals.texi b/gcc/doc/cppinternals.texi
index a8ddb5c190e..e8fe1fcf2d8 100644
--- a/gcc/doc/cppinternals.texi
+++ b/gcc/doc/cppinternals.texi
@@ -7,7 +7,7 @@
@ifinfo
@dircategory Software development
@direntry
-* Cpplib: (cppinternals). Cpplib internals.
+* @value{fncppint}: (@value{fncppint}). Cpplib internals.
@end direntry
@end ifinfo
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
index 3adb67aa47a..0fae318cade 100644
--- a/gcc/doc/extend.texi
+++ b/gcc/doc/extend.texi
@@ -24488,7 +24488,7 @@ want to write code that checks whether these features are available, you can
test for the GNU compiler the same way as for C programs: check for a
predefined macro @code{__GNUC__}. You can also use @code{__GNUG__} to
test specifically for GNU C++ (@pxref{Common Predefined Macros,,
-Predefined Macros,cpp,The GNU C Preprocessor}).
+Predefined Macros,@value{fncpp},The GNU C Preprocessor}).
@menu
* C++ Volatiles:: What constitutes an access to a volatile object.
diff --git a/gcc/doc/gcc.texi b/gcc/doc/gcc.texi
index b3d500d4f47..d58e57dd480 100644
--- a/gcc/doc/gcc.texi
+++ b/gcc/doc/gcc.texi
@@ -70,12 +70,12 @@ Texts being (a) (see below), and with the Back-Cover Texts being (b)
@ifnottex
@dircategory Software development
@direntry
-* gcc: (gcc). The GNU Compiler Collection.
-* g++: (gcc). The GNU C++ compiler.
-* gcov: (gcc) Gcov. @command{gcov}---a test coverage program.
-* gcov-tool: (gcc) Gcov-tool. @command{gcov-tool}---an offline gcda profile processing program.
-* gcov-dump: (gcc) Gcov-dump. @command{gcov-dump}---an offline gcda and gcno profile dump tool.
-* lto-dump: (gcc) lto-dump. @command{lto-dump}---Tool for
+* @value{fngcc}: (@value{fngcc}). The GNU Compiler Collection.
+* @value{fngxx}: (@value{fngcc}). The GNU C++ compiler.
+* gcov: (@value{fngcc}) Gcov. @command{gcov}---a test coverage program.
+* gcov-tool: (@value{fngcc}) Gcov-tool. @command{gcov-tool}---an offline gcda profile processing program.
+* gcov-dump: (@value{fngcc}) Gcov-dump. @command{gcov-dump}---an offline gcda and gcno profile dump tool.
+* lto-dump: (@value{fngcc}) Lto-dump. @command{lto-dump}---Tool for
dumping LTO object files.
@end direntry
@sp 1
@@ -135,7 +135,7 @@ version @value{version-GCC}.
The internals of the GNU compilers, including how to port them to new
targets and some information about how to write front ends for new
languages, are documented in a separate manual. @xref{Top,,
-Introduction, gccint, GNU Compiler Collection (GCC) Internals}.
+Introduction, @value{fngccint}, GNU Compiler Collection (GCC) Internals}.
@menu
* G++ and GCC:: You can compile C or C++ programs.
diff --git a/gcc/doc/gccint.texi b/gcc/doc/gccint.texi
index 33cf7fdafce..8c76bf8a0c6 100644
--- a/gcc/doc/gccint.texi
+++ b/gcc/doc/gccint.texi
@@ -49,7 +49,7 @@ Texts being (a) (see below), and with the Back-Cover Texts being (b)
@ifnottex
@dircategory Software development
@direntry
-* gccint: (gccint). Internals of the GNU Compiler Collection.
+* @value{fngccint}: (@value{fngccint}). Internals of the GNU Compiler Collection.
@end direntry
This file documents the internals of the GNU compilers.
@sp 1
@@ -81,7 +81,7 @@ write front ends for new languages. It corresponds to the compilers
@value{VERSION_PACKAGE}
@end ifset
version @value{version-GCC}. The use of the GNU compilers is documented in a
-separate manual. @xref{Top,, Introduction, gcc, Using the GNU
+separate manual. @xref{Top,, Introduction, @value{fngcc}, Using the GNU
Compiler Collection (GCC)}.
This manual is mainly a reference manual rather than a tutorial. It
diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index 63fc949b447..a5a1b01fc55 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -89,7 +89,7 @@ Free Documentation License}''.
@end ifinfo
@dircategory Software development
@direntry
-* gccinstall: (gccinstall). Installing the GNU Compiler Collection.
+* @value{fngccinstall}: (@value{fngccinstall}). Installing the GNU Compiler Collection.
@end direntry
@c Part 3 Titlepage and Copyright
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index def2df4584b..e5385a6140f 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -17722,7 +17722,7 @@ One of the standard libraries bypassed by @option{-nostdlib} and
@option{-nodefaultlibs} is @file{libgcc.a}, a library of internal subroutines
which GCC uses to overcome shortcomings of particular machines, or special
needs for some languages.
-(@xref{Interface,,Interfacing to GCC Output,gccint,GNU Compiler
+(@xref{Interface,,Interfacing to GCC Output,@value{fngccint},GNU Compiler
Collection (GCC) Internals},
for more discussion of @file{libgcc.a}.)
In most cases, you need @file{libgcc.a} even when you want to avoid
@@ -17731,7 +17731,7 @@ or @option{-nodefaultlibs} you should usually specify @option{-lgcc} as well.
This ensures that you have no unresolved references to internal GCC
library subroutines.
(An example of such an internal subroutine is @code{__main}, used to ensure C++
-constructors are called; @pxref{Collect2,,@code{collect2}, gccint,
+constructors are called; @pxref{Collect2,,@code{collect2}, @value{fngccint},
GNU Compiler Collection (GCC) Internals}.)
@opindex nostdlib++
@@ -35109,7 +35109,7 @@ Note that you can also specify places to search using options such as
@option{-B}, @option{-I} and @option{-L} (@pxref{Directory Options}). These
take precedence over places specified using environment variables, which
in turn take precedence over those specified by the configuration of GCC@.
-@xref{Driver,, Controlling the Compilation Driver @file{gcc}, gccint,
+@xref{Driver,, Controlling the Compilation Driver @file{gcc}, @value{fngccint},
GNU Compiler Collection (GCC) Internals}.
@table @env
@@ -35289,7 +35289,7 @@ the headers it contains change.
A precompiled header file is searched for when @code{#include} is
seen in the compilation. As it searches for the included file
-(@pxref{Search Path,,Search Path,cpp,The C Preprocessor}) the
+(@pxref{Search Path,,Search Path,@value{fncpp},The C Preprocessor}) the
compiler looks for a precompiled header in each directory just before it
looks for the include file in that directory. The name searched for is
the name specified in the @code{#include} with @samp{.gch} appended. If
diff --git a/gcc/doc/libgcc.texi b/gcc/doc/libgcc.texi
index 73aa803f97b..e005588b88e 100644
--- a/gcc/doc/libgcc.texi
+++ b/gcc/doc/libgcc.texi
@@ -24,7 +24,7 @@ that needs them.
GCC will also generate calls to C library routines, such as
@code{memcpy} and @code{memset}, in some cases. The set of routines
that GCC may possibly use is documented in @ref{Other
-Builtins,,,gcc, Using the GNU Compiler Collection (GCC)}.
+Builtins,,,@value{fngcc}, Using the GNU Compiler Collection (GCC)}.
These routines take arguments and return values of a specific machine
mode, not a specific C type. @xref{Machine Modes}, for an explanation
diff --git a/gcc/fortran/Make-lang.in b/gcc/fortran/Make-lang.in
index 1666fd8f0ff..96ec8861a3d 100644
--- a/gcc/fortran/Make-lang.in
+++ b/gcc/fortran/Make-lang.in
@@ -116,7 +116,8 @@ fortran.tags: force
cd $(srcdir)/fortran; $(ETAGS) -o TAGS.sub *.cc *.h; \
$(ETAGS) --include TAGS.sub --include ../TAGS.sub
-fortran.info: doc/gfortran.info doc/gfc-internals.info
+INFO_FORTRAN_NAME = $(shell echo gfortran|sed '$(program_transform_name)')
+fortran.info: doc/$(INFO_FORTRAN_NAME).info
F95_DVIFILES = doc/gfortran.dvi
@@ -199,10 +200,10 @@ GFORTRAN_TEXI = \
$(srcdir)/doc/include/gcc-common.texi \
gcc-vers.texi
-doc/gfortran.info: $(GFORTRAN_TEXI)
+doc/$(INFO_FORTRAN_NAME).info: $(GFORTRAN_TEXI)
if [ x$(BUILD_INFO) = xinfo ]; then \
rm -f doc/gfortran.info-*; \
- $(MAKEINFO) -I $(srcdir)/doc/include -I $(srcdir)/fortran \
+ $(MAKEINFO) $(MAKEINFODEFS) -I $(srcdir)/doc/include -I $(srcdir)/fortran \
-o $@ $<; \
else true; fi
@@ -267,7 +268,7 @@ fortran.install-common: install-finclude-dir installdirs
fortran.install-plugin:
-fortran.install-info: $(DESTDIR)$(infodir)/gfortran.info
+fortran.install-info: $(DESTDIR)$(infodir)/$(INFO_FORTRAN_NAME).info
fortran.install-man: $(DESTDIR)$(man1dir)/$(GFORTRAN_INSTALL_NAME)$(man1ext)
@@ -285,7 +286,7 @@ fortran.uninstall:
rm -rf $(DESTDIR)$(bindir)/$(GFORTRAN_INSTALL_NAME)$(exeext); \
rm -rf $(DESTDIR)$(man1dir)/$(GFORTRAN_INSTALL_NAME)$(man1ext); \
rm -rf $(DESTDIR)$(bindir)/$(GFORTRAN_TARGET_INSTALL_NAME)$(exeext); \
- rm -rf $(DESTDIR)$(infodir)/gfortran.info*
+ rm -rf $(DESTDIR)$(infodir)/$(INFO_FORTRAN_NAME).info*
#
# Clean hooks:
diff --git a/gcc/fortran/gfortran.texi b/gcc/fortran/gfortran.texi
index b96712987e1..55ed2a540c2 100644
--- a/gcc/fortran/gfortran.texi
+++ b/gcc/fortran/gfortran.texi
@@ -101,7 +101,7 @@ Texts being (a) (see below), and with the Back-Cover Texts being (b)
@ifinfo
@dircategory Software development
@direntry
-* gfortran: (gfortran). The GNU Fortran Compiler.
+* @value{fngfortran}: (@value{fngfortran}). The GNU Fortran Compiler.
@end direntry
This file documents the use and the internals of
the GNU Fortran compiler, (@command{gfortran}).
diff --git a/libffi/Makefile.am b/libffi/Makefile.am
index c6d6f849c53..6fbf374a2e7 100644
--- a/libffi/Makefile.am
+++ b/libffi/Makefile.am
@@ -28,6 +28,8 @@ TEXINFO_TEX = ../gcc/doc/include/texinfo.tex
# Defines info, dvi, pdf and html targets
MAKEINFOFLAGS = -I $(srcdir)/../gcc/doc/include
info_TEXINFOS = doc/libffi.texi
+INFO_LIBFFI_NAME = $(shell echo libffi | sed '${program_transform_name}')
+INFO_DEPS = doc/$(INFO_LIBFFI_NAME).info
# AM_CONDITIONAL on configure option --generated-files-in-srcdir
if GENINSRC
@@ -45,14 +47,14 @@ endif
all-local: $(STAMP_GENINSRC)
-stamp-geninsrc: doc/libffi.info
- cp -p $(top_builddir)/doc/libffi.info $(srcdir)/doc/libffi.info
+stamp-geninsrc: doc/$(INFO_LIBFFI_NAME).info
+ cp -p $(top_builddir)/doc/$(INFO_LIBFFI_NAME).info $(srcdir)/doc/libffi.info
@touch $@
-doc/libffi.info: $(STAMP_BUILD_INFO)
+doc/$(INFO_LIBFFI_NAME).info: $(STAMP_BUILD_INFO)
stamp-build-info: doc/libffi.texi $(srcdir)/doc/version.texi doc/$(am__dirstamp)
- $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)/doc -o doc/libffi.info $(srcdir)/doc/libffi.texi
+ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -D 'fnlibffi $(INFO_LIBFFI_NAME)' -I $(srcdir)/doc -o doc/$(INFO_LIBFFI_NAME).info $(srcdir)/doc/libffi.texi
@touch $@
CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO)
diff --git a/libffi/Makefile.in b/libffi/Makefile.in
index 5524a6a571e..1898ffee446 100644
--- a/libffi/Makefile.in
+++ b/libffi/Makefile.in
@@ -249,7 +249,8 @@ AM_V_texidevnull = $(am__v_texidevnull_@AM_V@)
am__v_texidevnull_ = $(am__v_texidevnull_@AM_DEFAULT_V@)
am__v_texidevnull_0 = > /dev/null
am__v_texidevnull_1 =
-INFO_DEPS = doc/libffi.info
+INFO_LIBFFI_NAME = $(shell echo libffi | sed '${program_transform_name}')
+INFO_DEPS = doc/$(INFO_LIBFFI_NAME).info
am__TEXINFO_TEX_DIR = $(srcdir)/../gcc/doc/include
DVIS = doc/libffi.dvi
PDFS = doc/libffi.pdf
@@ -473,6 +474,8 @@ TEXINFO_TEX = ../gcc/doc/include/texinfo.tex
# Defines info, dvi, pdf and html targets
MAKEINFOFLAGS = -I $(srcdir)/../gcc/doc/include
info_TEXINFOS = doc/libffi.texi
+INFO_LIBFFI_NAME = $(shell echo libffi | sed '${program_transform_name}')
+INFO_DEPS = doc/$(INFO_LIBFFI_NAME).info
@GENINSRC_FALSE@STAMP_GENINSRC =
# AM_CONDITIONAL on configure option --generated-files-in-srcdir
@@ -1906,14 +1909,15 @@ uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \
all-local: $(STAMP_GENINSRC)
-stamp-geninsrc: doc/libffi.info
- cp -p $(top_builddir)/doc/libffi.info $(srcdir)/doc/libffi.info
+$(srcdir)/doc/libffi.info: stamp-geninsrc
+stamp-geninsrc: doc/$(INFO_LIBFFI_NAME).info
+ cp -p $(top_builddir)/doc/$(INFO_LIBFFI_NAME).info $(srcdir)/doc/libffi.info
@touch $@
-doc/libffi.info: $(STAMP_BUILD_INFO)
+doc/$(INFO_LIBFFI_NAME).info: $(STAMP_BUILD_INFO)
stamp-build-info: doc/libffi.texi $(srcdir)/doc/version.texi doc/$(am__dirstamp)
- $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)/doc -o doc/libffi.info $(srcdir)/doc/libffi.texi
+ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -D 'fnlibffi $(INFO_LIBFFI_NAME)' -I $(srcdir)/doc -o doc/$(INFO_LIBFFI_NAME).info $(srcdir)/doc/libffi.texi
@touch $@
@LIBFFI_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBFFI_BUILD_VERSIONED_SHLIB_TRUE@libffi.map-sun : libffi.map $(top_srcdir)/../contrib/make_sunver.pl \
@LIBFFI_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBFFI_BUILD_VERSIONED_SHLIB_TRUE@ $(libffi_la_OBJECTS) $(libffi_la_LIBADD)
diff --git a/libffi/doc/libffi.texi b/libffi/doc/libffi.texi
index 7fd3625d992..62dc76d6d64 100644
--- a/libffi/doc/libffi.texi
+++ b/libffi/doc/libffi.texi
@@ -43,7 +43,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@dircategory Development
@direntry
-* libffi: (libffi). Portable foreign function interface library.
+* libffi: (@value{fnlibffi}). Portable foreign-function interface library.
@end direntry
@titlepage
diff --git a/libgomp/Makefile.am b/libgomp/Makefile.am
index 428f7a9dab5..cce97d85bc8 100644
--- a/libgomp/Makefile.am
+++ b/libgomp/Makefile.am
@@ -129,14 +129,17 @@ endif
all-local: $(STAMP_GENINSRC)
-stamp-geninsrc: libgomp.info
- cp -p $(top_builddir)/libgomp.info $(srcdir)/libgomp.info
+INFO_LIBGOMP_NAME = $(shell echo libgomp|sed '$(program_transform_name)')
+stamp-geninsrc: $(INFO_LIBGOMP_NAME).info
+ cp -p $(top_builddir)/$(INFO_LIBGOMP_NAME).info $(srcdir)/libgomp.info
@touch $@
-libgomp.info: $(STAMP_BUILD_INFO)
+libgomp.info: $(INFO_LIBGOMP_NAME).info
+ cp $(INFO_LIBGOMP_NAME).info libgomp.info
+$(STAMP_BUILD_INFO).info: $(STAMP_BUILD_INFO)
stamp-build-info: libgomp.texi
- $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o libgomp.info $(srcdir)/libgomp.texi
+ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o $(INFO_LIBGOMP_NAME).info $(srcdir)/libgomp.texi
@touch $@
diff --git a/libgomp/Makefile.in b/libgomp/Makefile.in
index 2c81ccacc1d..0fb67876733 100644
--- a/libgomp/Makefile.in
+++ b/libgomp/Makefile.in
@@ -612,6 +612,7 @@ info_TEXINFOS = libgomp.texi
# AM_CONDITIONAL on configure check ACX_CHECK_PROG_VER([MAKEINFO])
@BUILD_INFO_TRUE@STAMP_BUILD_INFO = stamp-build-info
+INFO_LIBGOMP_NAME = $(shell echo libgomp|sed '$(program_transform_name)')
CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO)
MAINTAINERCLEANFILES = $(srcdir)/libgomp.info
MULTISRCTOP =
@@ -1392,15 +1393,16 @@ env.lo: libgomp_f.h
env.o: libgomp_f.h
all-local: $(STAMP_GENINSRC)
-
-stamp-geninsrc: libgomp.info
- cp -p $(top_builddir)/libgomp.info $(srcdir)/libgomp.info
+stamp-geninsrc: $(INFO_LIBGOMP_NAME).info
+ cp -p $(top_builddir)/$(INFO_LIBGOMP_NAME).info $(srcdir)/libgomp.info
@touch $@
-libgomp.info: $(STAMP_BUILD_INFO)
+libgomp.info: $(INFO_LIBGOMP_NAME).info
+ cp $(INFO_LIBGOMP_NAME).info libgomp.info
+$(INFO_LIBGOMP_NAME).info: $(STAMP_BUILD_INFO)
stamp-build-info: libgomp.texi
- $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o libgomp.info $(srcdir)/libgomp.texi
+ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -D 'fnlibgomp $(INFO_LIBGOMP_NAME)' -I $(srcdir) -o $(INFO_LIBGOMP_NAME).info $(srcdir)/libgomp.texi
@touch $@
# target overrides
diff --git a/libgomp/libgomp.texi b/libgomp/libgomp.texi
index 5bcb84a1d6f..60715911924 100644
--- a/libgomp/libgomp.texi
+++ b/libgomp/libgomp.texi
@@ -31,7 +31,7 @@ texts being (a) (see below), and with the Back-Cover Texts being (b)
@ifinfo
@dircategory GNU Libraries
@direntry
-* libgomp: (libgomp). GNU Offloading and Multi Processing Runtime Library.
+* @value{fnlibgomp}: (@value{fnlibgomp}). GNU Offloading and Multi Processing Runtime Library.
@end direntry
This manual documents libgomp, the GNU Offloading and Multi Processing
diff --git a/libitm/libitm.texi b/libitm/libitm.texi
index 9bb818fa53f..e62a90231f5 100644
--- a/libitm/libitm.texi
+++ b/libitm/libitm.texi
@@ -20,7 +20,7 @@ Free Documentation License''.
@ifinfo
@dircategory GNU Libraries
@direntry
-* libitm: (libitm). GNU Transactional Memory Library
+* libitm: (libitm-6). GNU Transactional Memory Library
@end direntry
This manual documents the GNU Transactional Memory Library.
diff --git a/libquadmath/libquadmath.texi b/libquadmath/libquadmath.texi
index 2e3a62511b1..ac658f5f2a7 100644
--- a/libquadmath/libquadmath.texi
+++ b/libquadmath/libquadmath.texi
@@ -25,7 +25,7 @@ copy and modify this GNU manual.
@ifinfo
@dircategory GNU Libraries
@direntry
-* libquadmath: (libquadmath). GCC Quad-Precision Math Library
+* libquadmath: (libquadmath-6). GCC Quad-Precision Math Library
@end direntry
This manual documents the GCC Quad-Precision Math Library API.

115
gcc44-textdomain.patch Normal file
View File

@ -0,0 +1,115 @@
#! /bin/sh -e
# DP: Set gettext's domain and textdomain to the versioned package name.
dir=
if [ $# -eq 3 -a "$2" = '-d' ]; then
pdir="-d $3"
dir="$3/"
elif [ $# -ne 1 ]; then
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
exit 1
fi
case "$1" in
-patch)
patch $pdir -f --no-backup-if-mismatch -p0 < $0
;;
-unpatch)
patch $pdir -f --no-backup-if-mismatch -R -p0 < $0
;;
*)
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
exit 1
esac
exit 0
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 0fe2ba241..86e5fb9e7 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -4303,8 +4303,8 @@ install-po:
dir=$(localedir)/$$lang/LC_MESSAGES; \
echo $(mkinstalldirs) $(DESTDIR)$$dir; \
$(mkinstalldirs) $(DESTDIR)$$dir || exit 1; \
- echo $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/gcc.mo; \
- $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/gcc.mo; \
+ echo $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/gcc-13.mo; \
+ $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/gcc-13.mo; \
done
# Rule for regenerating the message template (gcc.pot).
diff --git a/gcc/intl.cc b/gcc/intl.cc
index e8108b7dc..62895c11f 100644
--- a/gcc/intl.cc
+++ b/gcc/intl.cc
@@ -55,8 +55,8 @@ gcc_init_libintl (void)
setlocale (LC_ALL, "");
#endif
- (void) bindtextdomain ("gcc", LOCALEDIR);
- (void) textdomain ("gcc");
+ (void) bindtextdomain ("gcc-13", LOCALEDIR);
+ (void) textdomain ("gcc-13");
/* Opening quotation mark. */
open_quote = _("`");
diff --git a/libcpp/Makefile.in b/libcpp/Makefile.in
index 5fbba9b9c..c37bc6bcf 100644
--- a/libcpp/Makefile.in
+++ b/libcpp/Makefile.in
@@ -49,6 +49,7 @@ LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
LIBINTL = @LIBINTL@
PACKAGE = @PACKAGE@
+PACKAGE_SUFFIX = -13
RANLIB = @RANLIB@
SHELL = @SHELL@
USED_CATALOGS = @USED_CATALOGS@
@@ -76,8 +77,10 @@ INCLUDES = -I$(srcdir) -I. -I$(srcdir)/../include @INCINTL@ \
ALL_CFLAGS = $(CFLAGS) $(WARN_CFLAGS) $(INCLUDES) $(CPPFLAGS) $(PICFLAG) \
$(CET_HOST_FLAGS)
+ALL_CFLAGS += -DPACKAGE_SUFFIX=\"$(strip $(PACKAGE_SUFFIX))\"
ALL_CXXFLAGS = $(CXXFLAGS) $(WARN_CXXFLAGS) $(NOEXCEPTION_FLAGS) $(INCLUDES) \
$(CPPFLAGS) $(PICFLAG) $(CET_HOST_FLAGS)
+ALL_CXXFLAGS += -DPACKAGE_SUFFIX=\"$(strip $(PACKAGE_SUFFIX))\"
# The name of the compiler to use.
COMPILER = $(CXX)
@@ -166,8 +169,8 @@ install-strip install: all installdirs
else continue; \
fi; \
dir=$(localedir)/$$lang/LC_MESSAGES; \
- echo $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \
- $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \
+ echo $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE)$(PACKAGE_SUFFIX).mo; \
+ $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE)$(PACKAGE_SUFFIX).mo; \
done
mostlyclean:
diff --git a/libcpp/init.cc b/libcpp/init.cc
index 63124c816..4471ff358 100644
--- a/libcpp/init.cc
+++ b/libcpp/init.cc
@@ -167,7 +167,7 @@ init_library (void)
init_trigraph_map ();
#ifdef ENABLE_NLS
- (void) bindtextdomain (PACKAGE, LOCALEDIR);
+ (void) bindtextdomain (PACKAGE PACKAGE_SUFFIX, LOCALEDIR);
#endif
}
}
diff --git a/libcpp/system.h b/libcpp/system.h
index 0a0629d55..6fc28a651 100644
--- a/libcpp/system.h
+++ b/libcpp/system.h
@@ -284,7 +284,7 @@ extern int errno;
#endif
#ifndef _
-# define _(msgid) dgettext (PACKAGE, msgid)
+# define _(msgid) dgettext (PACKAGE PACKAGE_SUFFIX, msgid)
#endif
#ifndef N_

View File

@ -0,0 +1,14 @@
Index: libstdc++-v3/doc/html/index.html
===================================================================
--- libstdc++-v3/doc/html/index.html (revision 210144)
+++ libstdc++-v3/doc/html/index.html (working copy)
@@ -18,7 +18,7 @@
</p></li><li class="listitem"><p>
<a class="link" href="faq.html" title="Frequently Asked Questions">Frequently Asked Questions</a>
</p></li><li class="listitem"><p>
- <a class="link" href="api.html" title="The GNU C++ Library API Reference">API and Source Documentation</a>
+ <a class="link" href="api/index.html" title="The GNU C++ Library API Reference">API and Source Documentation</a>
</p></li></ul></div><p>
</p></div></div></div><hr /></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="book"><a href="manual/index.html">The GNU C++ Library Manual</a></span></dt><dd><dl><dt><span class="part"><a href="manual/intro.html">I.
Introduction

View File

@ -0,0 +1,18 @@
Index: gcc/Makefile.in
===================================================================
--- gcc/Makefile.in (revision 255776)
+++ gcc/Makefile.in (working copy)
@@ -3066,13 +3066,6 @@ stmp-fixinc: gsyslimits.h macro_list fix
sysroot_headers_suffix=`echo $${ml} | sed -e 's/;.*$$//'`; \
multi_dir=`echo $${ml} | sed -e 's/^[^;]*;//'`; \
fix_dir=include-fixed$${multi_dir}; \
- if ! $(inhibit_libc) && test ! -d ${BUILD_SYSTEM_HEADER_DIR}; then \
- echo The directory that should contain system headers does not exist: >&2 ; \
- echo " ${BUILD_SYSTEM_HEADER_DIR}" >&2 ; \
- tooldir_sysinc=`echo "${gcc_tooldir}/sys-include" | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`; \
- if test "x${BUILD_SYSTEM_HEADER_DIR}" = "x$${tooldir_sysinc}"; \
- then sleep 1; else exit 1; fi; \
- fi; \
$(mkinstalldirs) $${fix_dir}; \
chmod a+rx $${fix_dir} || true; \
(TARGET_MACHINE='$(target)'; srcdir=`cd $(srcdir); ${PWD_COMMAND}`; \

View File

@ -0,0 +1,13 @@
Index: gcc/c-family/c.opt
===================================================================
--- gcc/c-family/c.opt (revision 246224)
+++ gcc/c-family/c.opt (working copy)
@@ -596,7 +596,7 @@ C ObjC C++ ObjC++ Var(warn_double_promot
Warn about implicit conversions from \"float\" to \"double\".
Wexpansion-to-defined
-C ObjC C++ ObjC++ CPP(warn_expansion_to_defined) CppReason(CPP_W_EXPANSION_TO_DEFINED) Var(cpp_warn_expansion_to_defined) Init(0) Warning EnabledBy(Wextra || Wpedantic)
+C ObjC C++ ObjC++ CPP(warn_expansion_to_defined) CppReason(CPP_W_EXPANSION_TO_DEFINED) Var(cpp_warn_expansion_to_defined) Init(0) Warning EnabledBy(Wpedantic)
Warn if \"defined\" is used outside #if.
Wimplicit-function-declaration

View File

@ -0,0 +1,116 @@
Use the binaries build-id as checksum for PCH purposes.
diff --git a/gcc/c-family/c-pch.cc b/gcc/c-family/c-pch.cc
index 2cafa1387bb..7f51f977378 100644
--- a/gcc/c-family/c-pch.cc
+++ b/gcc/c-family/c-pch.cc
@@ -64,6 +64,66 @@ static FILE *pch_outfile;
static const char *get_ident (void);
+#if _GNU_SOURCE
+#include <link.h>
+
+#define ALIGN(val, align) (((val) + (align) - 1) & ~((align) - 1))
+
+static int
+get_build_id_1 (struct dl_phdr_info *info, size_t, void *data)
+{
+ for (unsigned i = 0; i < info->dlpi_phnum; ++i)
+ {
+ if (info->dlpi_phdr[i].p_type != PT_NOTE)
+ continue;
+ ElfW(Nhdr) *nhdr
+ = (ElfW(Nhdr) *)(info->dlpi_addr + info->dlpi_phdr[i].p_vaddr);
+ ptrdiff_t size = info->dlpi_phdr[i].p_filesz;
+ ptrdiff_t align = info->dlpi_phdr[i].p_align;
+ if (align != 8)
+ align = 4;
+ while (size >= (ptrdiff_t)sizeof (ElfW(Nhdr)))
+ {
+ if (nhdr->n_type == NT_GNU_BUILD_ID
+ && nhdr->n_namesz == 4
+ && strncmp ((char *)nhdr
+ + sizeof (ElfW(Nhdr)),
+ "GNU", 4) == 0
+ && nhdr->n_descsz >= 16)
+ {
+ memcpy (data,
+ (char *)nhdr
+ + ALIGN (sizeof (ElfW(Nhdr))
+ + nhdr->n_namesz, align), 16);
+ return 1;
+ }
+ size_t offset = (ALIGN (sizeof (ElfW(Nhdr))
+ + nhdr->n_namesz, align)
+ + ALIGN(nhdr->n_descsz, align));
+ nhdr = (ElfW(Nhdr) *)((char *)nhdr + offset);
+ size -= offset;
+ }
+ }
+
+ return 0;
+}
+
+static const unsigned char *
+get_build_id ()
+{
+ static unsigned char build_id[16];
+ if (!dl_iterate_phdr (get_build_id_1, build_id))
+ return NULL;
+ return build_id;
+}
+#else
+static const unsigned char *
+get_build_id ()
+{
+ return NULL;
+}
+#endif
+
/* Compute an appropriate 8-byte magic number for the PCH file, so that
utilities like file(1) can identify it, and so that GCC can quickly
ignore non-PCH files and PCH files that are of a completely different
@@ -118,8 +178,11 @@ pch_init (void)
}
target_validity = targetm.get_pch_validity (&v.target_data_length);
+ const unsigned char *chksum = get_build_id ();
+ if (!chksum)
+ chksum = executable_checksum;
if (fwrite (partial_pch, IDENT_LENGTH, 1, f) != 1
- || fwrite (executable_checksum, 16, 1, f) != 1
+ || fwrite (chksum, 16, 1, f) != 1
|| fwrite (&v, sizeof (v), 1, f) != 1
|| fwrite (target_validity, v.target_data_length, 1, f) != 1)
fatal_error (input_location, "cannot write to %s: %m", pch_file);
@@ -234,7 +297,10 @@ c_common_valid_pch (cpp_reader *pfile, const char *name, int fd)
cpp_warning (pfile, CPP_W_INVALID_PCH, "%s: not a PCH file", name);
return 2;
}
- if (memcmp (ident + IDENT_LENGTH, executable_checksum, 16) != 0)
+ const unsigned char *chksum = get_build_id ();
+ if (!chksum)
+ chksum = executable_checksum;
+ if (memcmp (ident + IDENT_LENGTH, chksum, 16) != 0)
{
cpp_warning (pfile, CPP_W_INVALID_PCH,
"%s: created by a different GCC executable", name);
diff --git a/gcc/genchecksum.cc b/gcc/genchecksum.cc
index 47280f5147b..bcfdcacf954 100644
--- a/gcc/genchecksum.cc
+++ b/gcc/genchecksum.cc
@@ -113,8 +113,13 @@ main (int argc, char ** argv)
puts ("#include \"config.h\"");
puts ("#include \"system.h\"");
fputs ("EXPORTED_CONST unsigned char executable_checksum[16] = { ", stdout);
+#if _GNU_SOURCE
+ for (i = 0; i < 16; i++)
+ printf ("0x%02x%s", 0, i == 15 ? " };\n" : ", ");
+#else
for (i = 0; i < 16; i++)
printf ("0x%02x%s", result[i], i == 15 ? " };\n" : ", ");
+#endif
return 0;
}

View File

@ -0,0 +1,15 @@
Avoid leaking current data on generated file for Ada.
Index: gcc/ada/gcc-interface/Makefile.in
===================================================================
--- gcc/ada/gcc-interface/Makefile.in (revision 268977)
+++ gcc/ada/gcc-interface/Makefile.in (working copy)
@@ -2407,6 +2407,7 @@ $(RTSDIR)/s-oscons.ads: ../stamp-gnatlib
$(OSCONS_CPP) ; \
$(OSCONS_EXTRACT) ; \
../bldtools/oscons/xoscons s-oscons)
+ touch -r $(fsrcpfx)ada/gsocket.h $@
gnatlib: ../stamp-gnatlib1-$(RTSDIR) ../stamp-gnatlib2-$(RTSDIR) $(RTSDIR)/s-oscons.ads
test -f $(RTSDIR)/s-oscons.ads || exit 1

57
gdcflags.patch Normal file
View File

@ -0,0 +1,57 @@
From 1ed21e23d6d4da8201a09558b71d9a34281e54dd Mon Sep 17 00:00:00 2001
From: Andreas Schwab <schwab@suse.de>
Date: Sun, 16 Jul 2023 19:43:56 +0200
Subject: [PATCH] Use substituted GDCFLAGS
Use the substituted value for GCDFLAGS instead of hardcoding $(CFLAGS) so
that the subdir configure scripts use the configured value.
* configure.ac (GDCFLAGS): Set default from ${CFLAGS}.
* configure: Regenerate.
* Makefile.in (GDCFLAGS): Substitute @GDCFLAGS@.
---
Makefile.in | 2 +-
configure | 1 +
configure.ac | 1 +
3 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/Makefile.in b/Makefile.in
index 04307ca561b..144bccd2603 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -444,7 +444,7 @@ LIBCFLAGS = $(CFLAGS)
CXXFLAGS = @CXXFLAGS@
LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
GOCFLAGS = $(CFLAGS)
-GDCFLAGS = $(CFLAGS)
+GDCFLAGS = @GDCFLAGS@
GM2FLAGS = $(CFLAGS)
# Pass additional PGO and LTO compiler options to the PGO build.
diff --git a/configure b/configure
index 0d3f5c6455d..3269da9829f 100755
--- a/configure
+++ b/configure
@@ -12947,6 +12947,7 @@ fi
+GDCFLAGS=${GDCFLAGS-${CFLAGS}}
# Target tools.
diff --git a/configure.ac b/configure.ac
index dddab2a56d8..d07a0fa7698 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3662,6 +3662,7 @@ AC_SUBST(CFLAGS)
AC_SUBST(CXXFLAGS)
AC_SUBST(GDC)
AC_SUBST(GDCFLAGS)
+GDCFLAGS=${GDCFLAGS-${CFLAGS}}
# Target tools.
AC_ARG_WITH([build-time-tools],
--
2.41.0

BIN
newlib-4.3.0.20230120.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

31
pre_checkin.sh Normal file
View File

@ -0,0 +1,31 @@
#!/bin/bash
# This script is called automatically during autobuild checkin.
case $0 in
\./*)
here=$PWD
;;
*/*)
here=${0%/*}
;;
*)
here=$PWD
;;
esac
case ${here##*/} in
gcc*.*)
# Handle maintainance projects with .$REPO suffix
suffix=${here##*/}
suffix=${suffix%%\.*}
set ${suffix#gcc}
;;
gcc-*)
suffix=${here##*/}
set ${suffix#*-}-
;;
gcc[0-9]*)
suffix=${here##*/}
set ${suffix#gcc}
;;
esac
. ${here}/change_spec

20
tls-no-direct.diff Normal file
View File

@ -0,0 +1,20 @@
For i?86 negative offsets to %fs segment accesses cause a hypervisor
trap for Xen. Avoid this by making accesses indirect.
??? Note that similar to the behavior on SLE11 this only affects
the compiler built on %ix86, not that on x86_64, even with -m32.
Index: gcc/config/i386/linux.h
===================================================================
--- gcc/config/i386/linux.h.orig 2015-12-17 15:07:37.785650062 +0100
+++ gcc/config/i386/linux.h 2015-12-17 15:08:06.393983290 +0100
@@ -24,3 +24,9 @@ along with GCC; see the file COPYING3.
#undef MUSL_DYNAMIC_LINKER
#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-i386.so.1"
+
+/* This slows down Xen, so take a very small general performance hit
+ for not accessing the %fs segment with negative offsets by making
+ GCC not emit direct accesses to %fs at all. */
+#undef TARGET_TLS_DIRECT_SEG_REFS_DEFAULT
+#define TARGET_TLS_DIRECT_SEG_REFS_DEFAULT 0