Successfully identified regression in *gcc* in CI configuration tcwg_bmk_llvm_tk1/llvm-release-arm-spec2k6-Os. So far, this commit has regressed CI configurations:
- tcwg_bmk_llvm_tk1/llvm-release-arm-spec2k6-Os
Culprit:
<cut>
commit b6bf4d8a773cde07e751542f2911307d78b717fd
Author: Andreas Tobler <andreast(a)gcc.gnu.org>
Date: Thu Apr 25 22:03:35 2019 +0200
freebsd64.h: Add bits for 32-bit multilib support.
2019-04-25 Andreas Tobler <andreast(a)gcc.gnu.org>
* config/i386/freebsd64.h: Add bits for 32-bit multilib support.
* config/i386/t-freebsd64: New file.
* config.gcc: Add the t-freebsd64 for multilib support.
From-SVN: r270586
</cut>
Results regressed to (for first_bad == b6bf4d8a773cde07e751542f2911307d78b717fd)
# reset_artifacts:
-10
# build_abe binutils:
-9
# build_abe stage1 -- --set gcc_override_configure=--with-mode=thumb --set gcc_override_configure=--disable-libsanitizer:
-8
# build_abe linux:
-7
# build_abe glibc:
-6
# build_abe stage2 -- --set gcc_override_configure=--with-mode=thumb --set gcc_override_configure=--disable-libsanitizer:
-5
# build_llvm true:
-3
# true:
0
# benchmark -Os_mthumb -- artifacts/build-b6bf4d8a773cde07e751542f2911307d78b717fd/results_id:
1
# 429.mcf,mcf_base.default regressed by 104
# 470.lbm,lbm_base.default regressed by 103
from (for last_good == 8a55f9c57a1ffd900262aa2fc2015822dc059331)
# reset_artifacts:
-10
# build_abe binutils:
-9
# build_abe stage1 -- --set gcc_override_configure=--with-mode=thumb --set gcc_override_configure=--disable-libsanitizer:
-8
# build_abe linux:
-7
# build_abe glibc:
-6
# build_abe stage2 -- --set gcc_override_configure=--with-mode=thumb --set gcc_override_configure=--disable-libsanitizer:
-5
# build_llvm true:
-3
# true:
0
# benchmark -Os_mthumb -- artifacts/build-baseline/results_id:
1
Artifacts of last_good build: https://ci.linaro.org/job/tcwg_bmk_ci_llvm-bisect-tcwg_bmk_tk1-llvm-release…
Results ID of last_good: tk1_32/tcwg_bmk_llvm_tk1/baseline-llvm-release-arm-spec2k6-Os/824
Artifacts of first_bad build: https://ci.linaro.org/job/tcwg_bmk_ci_llvm-bisect-tcwg_bmk_tk1-llvm-release…
Results ID of first_bad: tk1_32/tcwg_bmk_llvm_tk1/bisect-llvm-release-arm-spec2k6-Os/929
Build top page/logs: https://ci.linaro.org/job/tcwg_bmk_ci_llvm-bisect-tcwg_bmk_tk1-llvm-release…
Configuration details:
Reproduce builds:
<cut>
mkdir investigate-gcc-b6bf4d8a773cde07e751542f2911307d78b717fd
cd investigate-gcc-b6bf4d8a773cde07e751542f2911307d78b717fd
git clone https://git.linaro.org/toolchain/jenkins-scripts
mkdir -p artifacts/manifests
curl -o artifacts/manifests/build-baseline.sh https://ci.linaro.org/job/tcwg_bmk_ci_llvm-bisect-tcwg_bmk_tk1-llvm-release… --fail
curl -o artifacts/manifests/build-parameters.sh https://ci.linaro.org/job/tcwg_bmk_ci_llvm-bisect-tcwg_bmk_tk1-llvm-release… --fail
curl -o artifacts/test.sh https://ci.linaro.org/job/tcwg_bmk_ci_llvm-bisect-tcwg_bmk_tk1-llvm-release… --fail
chmod +x artifacts/test.sh
# Reproduce the baseline build (build all pre-requisites)
./jenkins-scripts/tcwg_bmk-build.sh @@ artifacts/manifests/build-baseline.sh
cd gcc
# Reproduce first_bad build
git checkout --detach b6bf4d8a773cde07e751542f2911307d78b717fd
../artifacts/test.sh
# Reproduce last_good build
git checkout --detach 8a55f9c57a1ffd900262aa2fc2015822dc059331
../artifacts/test.sh
cd ..
</cut>
History of pending regressions and results: https://git.linaro.org/toolchain/ci/base-artifacts.git/log/?h=linaro-local/…
Artifacts: https://ci.linaro.org/job/tcwg_bmk_ci_llvm-bisect-tcwg_bmk_tk1-llvm-release…
Build log: https://ci.linaro.org/job/tcwg_bmk_ci_llvm-bisect-tcwg_bmk_tk1-llvm-release…
Full commit (up to 1000 lines):
<cut>
commit b6bf4d8a773cde07e751542f2911307d78b717fd
Author: Andreas Tobler <andreast(a)gcc.gnu.org>
Date: Thu Apr 25 22:03:35 2019 +0200
freebsd64.h: Add bits for 32-bit multilib support.
2019-04-25 Andreas Tobler <andreast(a)gcc.gnu.org>
* config/i386/freebsd64.h: Add bits for 32-bit multilib support.
* config/i386/t-freebsd64: New file.
* config.gcc: Add the t-freebsd64 for multilib support.
From-SVN: r270586
---
gcc/ChangeLog | 6 ++++++
gcc/config.gcc | 5 ++++-
gcc/config/i386/freebsd64.h | 5 ++++-
gcc/config/i386/t-freebsd64 | 30 ++++++++++++++++++++++++++++++
4 files changed, 44 insertions(+), 2 deletions(-)
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7cd02c850d3..3a927ed00d3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2019-04-25 Andreas Tobler <andreast(a)gcc.gnu.org>
+
+ * config/i386/freebsd64.h: Add bits for 32-bit multilib support.
+ * config/i386/t-freebsd64: New file.
+ * config.gcc: Add the t-freebsd64 for multilib support.
+
2019-04-25 Uroš Bizjak <ubizjak(a)gmail.com>
* doc/extend.texi (vector_size): Add missing comma after @xref.
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 09fb9ecd2cd..c7a464c89d0 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -4927,7 +4927,10 @@ case ${target} in
;;
i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
;;
- i[34567]86-*-freebsd* | x86_64-*-freebsd*)
+ i[34567]86-*-freebsd*)
+ ;;
+ x86_64-*-freebsd*)
+ tmake_file="${tmake_file} i386/t-freebsd64"
;;
ia64*-*-linux*)
;;
diff --git a/gcc/config/i386/freebsd64.h b/gcc/config/i386/freebsd64.h
index 1f99e812f01..bffe19c14ff 100644
--- a/gcc/config/i386/freebsd64.h
+++ b/gcc/config/i386/freebsd64.h
@@ -31,7 +31,7 @@ along with GCC; see the file COPYING3. If not see
#undef LINK_SPEC
#define LINK_SPEC "\
- %{m32:-m elf_i386_fbsd} \
+ %{m32:-m elf_i386_fbsd}%{!m32:-m elf_x86_64_fbsd} \
%{p:%nconsider using '-pg' instead of '-p' with gprof(1)} \
%{v:-V} \
%{assert*} %{R*} %{rpath*} %{defsym*} \
@@ -42,3 +42,6 @@ along with GCC; see the file COPYING3. If not see
-dynamic-linker %(fbsd_dynamic_linker) } \
%{static:-Bstatic}} \
%{symbolic:-Bsymbolic}"
+
+#undef MULTILIB_DEFAULTS
+#define MULTILIB_DEFAULTS { "m64" }
diff --git a/gcc/config/i386/t-freebsd64 b/gcc/config/i386/t-freebsd64
new file mode 100644
index 00000000000..0dd05d479ac
--- /dev/null
+++ b/gcc/config/i386/t-freebsd64
@@ -0,0 +1,30 @@
+# Copyright (C) 2019 Free Software Foundation, Inc.
+#
+# This file is part of GCC.
+#
+# GCC is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GCC is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING3. If not see
+# <http://www.gnu.org/licenses/>.
+
+# The 32-bit libraries are found in /usr/lib32
+
+# To support i386 and x86-64, the directory structrue
+# should be:
+#
+# /lib has x86-64 libraries.
+# /lib32 has i386 libraries.
+#
+
+MULTILIB_OPTIONS = m32
+MULTILIB_DIRNAMES = 32
+MULTILIB_OSDIRNAMES = ../lib32
</cut>
Hey, Maxim,
You recently mentioned we have such a setup working, yes? Is there an easy
way to point the qemu portion to a custom branch?
I'm currently working on adding vdso support to qemu, and want to make sure
that the unwind info that I've written works correctly with libgcc and
llvm's libunwind.
Also, what arm CPU models are being used? My edge cases are v4, v4t, m0
(which is not really linux-user, but I think Christophe Lyon had made work).
r~
Progress:
* UM-2 [QEMU upstream maintainership]
+ Code review:
- RTH's latest bswap series
- RTH's series converting nios2 to TranslatorOps
- Alex's SYS_HEAPINFO series
- RTH's series to avoid linux-user putting signal trampoline code
on the stack
- Renesas SCI device refactoring
+ Working on making the docs report the license, version, etc in each
page's footer (something I was asked for back when I did the initial
conversion to Sphinx and which I promised I would do afterwards...)
+ Investigated a bug reported by Maxim Uvarov where the virt board's
GPIO-driven shutdown/reset mechanism for secure firmware wasn't
working correctly. This turns out to be caused by our PL061 GPIO
implementation hardcoding that GPIO lines have pullup resistors,
whereas the virt board and the gpio-pwr device implicitly assume
pulldown. That bug was then masked/confused by a second bug, where
we only actually signal the line level implied by the pullup when
the guest first touches the PL061, rather than on reset. Sent a
series that fixes both of these things (and does a bit of other
PL061 cleanup in the process).
* QEMU-406 [QEMU support for MVE (M-profile Vector Extension; Helium)]
+ Implemented all the non-vector shift insns
+ Sent out a second slice of patches for review
+ Progress: 112/210 (53%)
-- PMM