+2019-12-05 Sandra Loosemore <sandra@codesourcery.com>
+
+ * config/nios2/linux.h (LINK_EH_SPEC): Define.
+
2019-12-05 Jan Hubicka <hubicka@ucw.cz>
* ipa-inline-transform.c (inline_call): Fix maintenatnce of comdat_local
-dynamic-linker " GNU_USER_DYNAMIC_LINKER "} \
%{static:-static}}"
+/* The nios2 ABI does not have appropriate relocations to support
+ --eh-frame-hdr with PIE, or in shared libraries. */
+#undef LINK_EH_SPEC
+#define LINK_EH_SPEC \
+ "%{!pie: %{!shared: %{!static:--eh-frame-hdr}}} "
+
/* This toolchain implements the ABI for Linux Systems documented in the
Nios II Processor Reference Handbook. */
#define TARGET_LINUX_ABI 1
+2019-12-05 Sandra Loosemore <sandra@codesourcery.com>
+
+ * g++.target/nios2/hello-pie.C: New.
+ * g++.target/nios2/nios2.exp: New.
+
2019-12-05 Marek Polacek <polacek@redhat.com>
Jakub Jelinek <jakub@redhat.com>
--- /dev/null
+// { dg-do run { target *-*-linux* } }
+// { dg-options "-pie -fpie" }
+// { dg-output "Hello, pie World" }
+
+// This test used to give an "FDE encoding" error from the linker due to
+// the ABI not having appropriate relocations for PIE.
+
+#include <iostream>
+
+int
+main ()
+{
+ std::cout << "Hello, pie World" << std::endl;
+}
--- /dev/null
+# Copyright (C) 2019 Free Software Foundation, Inc.
+
+# This program 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 of the License, or
+# (at your option) any later version.
+#
+# This program 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/>.
+
+# GCC testsuite that uses the `dg.exp' driver.
+
+# Exit immediately if this isn't a nios2 target.
+if ![istarget nios2*-*-*] then {
+ return
+}
+
+# Load support procs.
+load_lib g++-dg.exp
+
+# Initialize `dg'.
+dg-init
+
+# Main loop.
+dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.C]] "" ""
+
+# All done.
+dg-finish