On Thu, May 24, 2018 at 01:32:17PM -0600, Jeff Law wrote: > On 05/24/2018 01:17 PM, co...@sdf.org wrote: > > On Thu, May 24, 2018 at 12:48:22PM -0600, Jeff Law wrote: > >> On 05/24/2018 07:54 AM, Maya Rashish wrote: > >>> Move linux-specific specfile definitions to linux.h > >>> gcc/config/alpha/linux.h (STARTFILE_SPEC, ENDFILE_SPEC) move from > >>> alpha/elf.h > >>> --- > >>> gcc/config/alpha/elf.h | 26 -------------------------- > >>> gcc/config/alpha/linux.h | 26 ++++++++++++++++++++++++++ > >>> 2 files changed, 26 insertions(+), 26 deletions(-) > >> So is there going to be some kind of follow-up to fix freebsd, netbsd > >> and openbsd which currently get their STARTFILE/ENDFILE from elf.h? > >> > >> jeff > > > > I can try to fix openbsd soon, but freebsd dropped alpha in 2009. > > How does gcc feel about me picking up patches from openbsd ports, their > > package manager, that weren't written by myself? > So ISTM we should deprecate freebsd alpha. > > WRT picking up bits from others. It'd really depend on their size and > complexity -- I'd have to see them to be able to judge. I'll review if > you extract the necessary bits and submit them. > > Jeff
- With the original patch - Attached patch to update the specfile for openbsd from openbsd ports (It is here: https://github.com/openbsd/ports/blob/master/lang/gcc/6/patches/patch-gcc_config_alpha_openbsd_h ) - Attached patch to recognise cross compilation for openbsd (from me) - A violent hack of "borrowing" stdatomic.h from a newer GCC - Disabling libssp I can build trunk for openbsd--alpha.
>From 1387836d5af4150ea08b888a202f72c08909a32f Mon Sep 17 00:00:00 2001 From: Maya Rashish <co...@sdf.org> Date: Fri, 25 May 2018 01:26:01 +0300 Subject: [PATCH 1/2] Recognise cross compilation for openbsd --- libstdc++-v3/configure | 2 +- libstdc++-v3/crossconfig.m4 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure index 79eb18727ea..cb51a01feeb 100755 --- a/libstdc++-v3/configure +++ b/libstdc++-v3/configure @@ -66148,7 +66148,7 @@ fi done ;; - *-netbsd*) + *-netbsd* | *-openbsd*) SECTION_FLAGS='-ffunction-sections -fdata-sections' diff --git a/libstdc++-v3/crossconfig.m4 b/libstdc++-v3/crossconfig.m4 index 669d87f7602..0dbfe4057bd 100644 --- a/libstdc++-v3/crossconfig.m4 +++ b/libstdc++-v3/crossconfig.m4 @@ -201,7 +201,7 @@ case "${host}" in AC_CHECK_FUNCS(aligned_alloc posix_memalign memalign _aligned_malloc) AC_CHECK_FUNCS(_wfopen) ;; - *-netbsd*) + *-netbsd* | *-openbsd*) SECTION_FLAGS='-ffunction-sections -fdata-sections' AC_SUBST(SECTION_FLAGS) GLIBCXX_CHECK_LINKER_FEATURES -- 2.17.0
>From 164a025328b007fb73ccd4491bc7d6fc70b88f0d Mon Sep 17 00:00:00 2001 From: Maya Rashish <co...@sdf.org> Date: Fri, 25 May 2018 01:26:16 +0300 Subject: [PATCH 2/2] Update openbsd/alpha specfile. Taken from OpenBSD ports --- gcc/config/alpha/openbsd.h | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/gcc/config/alpha/openbsd.h b/gcc/config/alpha/openbsd.h index aa369d7630a..9f035150d8b 100644 --- a/gcc/config/alpha/openbsd.h +++ b/gcc/config/alpha/openbsd.h @@ -19,6 +19,28 @@ along with GCC; see the file COPYING3. If not see /* Controlling the compilation driver. */ +#undef TARGET_DEFAULT +#define TARGET_DEFAULT \ + (MASK_FPREGS | MASK_IEEE | MASK_IEEE_CONFORMANT) + + #define LINK_SPEC \ + "%{!shared:%{!nostdlib:%{!r*:%{!e*:-e __start}}}} \ + %{shared:-shared} %{R*} \ + %{static:-Bstatic} \ + %{!static:-Bdynamic} \ + %{rdynamic:-export-dynamic} \ + %{assert*} \ + %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.so}" + +/* As an elf system, we need crtbegin/crtend stuff. */ +#undef STARTFILE_SPEC +#define STARTFILE_SPEC "\ + %{!shared: %{pg:gcrt0%O%s} %{!pg:%{p:gcrt0%O%s} \ + %{!p:%{!static:crt0%O%s} %{static:%{nopie:crt0%O%s} \ + %{!nopie:rcrt0%O%s}}}} crtbegin%O%s} %{shared:crtbeginS%O%s}" +#undef ENDFILE_SPEC +#define ENDFILE_SPEC "%{!shared:crtend%O%s} %{shared:crtendS%O%s}" + /* run-time target specifications */ #define TARGET_OS_CPP_BUILTINS() \ do { \ @@ -28,18 +50,27 @@ along with GCC; see the file COPYING3. If not see /* Layout of source language data types. */ -/* This must agree with <machine/ansi.h> */ +/* This must agree with <machine/_types.h> */ #undef SIZE_TYPE #define SIZE_TYPE "long unsigned int" #undef PTRDIFF_TYPE #define PTRDIFF_TYPE "long int" +#undef INTMAX_TYPE +#define INTMAX_TYPE "long long int" + +#undef UINTMAX_TYPE +#define UINTMAX_TYPE "long long unsigned int" + #undef WCHAR_TYPE #define WCHAR_TYPE "int" #undef WCHAR_TYPE_SIZE #define WCHAR_TYPE_SIZE 32 +#undef WINT_TYPE +#define WINT_TYPE "int" + #define LOCAL_LABEL_PREFIX "." -- 2.17.0