Accepting request 203482 from Base:System

- Depend on gcc defaults for base powerpc optimisations (bnc#844824) (forwarded request 203481 from Andreas_Schwab)

OBS-URL: https://build.opensuse.org/request/show/203482
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=158
This commit is contained in:
Tomáš Chvátal 2013-10-17 12:05:39 +00:00 committed by Git OBS Bridge
parent be39fbe295
commit 6c00c753af
7 changed files with 125 additions and 24 deletions

View File

@ -1,3 +1,14 @@
-------------------------------------------------------------------
Mon Oct 14 09:32:44 UTC 2013 - schwab@suse.de
- Depend on gcc defaults for base powerpc optimisations (bnc#844824)
-------------------------------------------------------------------
Fri Oct 11 08:37:38 UTC 2013 - schwab@suse.de
- Enable ports addon for m68k and adapt file list
- m68k-Scrt1.patch: Use PIC for Scrt1.o
-------------------------------------------------------------------
Thu Sep 19 14:12:59 UTC 2013 - schwab@suse.de

View File

@ -78,11 +78,11 @@ BuildRequires: gd-devel
%ifarch ppc ppc64
%define optimize_power 1
%ifarch ppc
%define powerpc_optimize_base power3
%define powerpc_optimize_base %{nil}
%define powerpc_optimize_tune power3
%define powerpc_optimize_cpu_power4 %{normal_build}
%else
%define powerpc_optimize_base power4
%define powerpc_optimize_base %{nil}
%define powerpc_optimize_tune power5
%define powerpc_optimize_cpu_power4 0
%endif
@ -92,7 +92,7 @@ BuildRequires: gd-devel
%define powerpc_optimize_cpu_cell 0
%else
%define optimize_power 0
%define powerpc_optimize_base 0
%define powerpc_optimize_base %{nil}
%define powerpc_optimize_cpu_power4 0
%define powerpc_optimize_cpu_power6 0
%define powerpc_optimize_cpu_power7 0
@ -246,6 +246,8 @@ Patch306: glibc-fix-double-loopback.diff
Patch1000: fcntl-o-tmpfile.patch
# PATCH-FIX-UPSTREAM Integer overflows in malloc
Patch1001: malloc-overflows.patch
# PATCH-FIX-UPSTREAM m68k: Use PIC for Scrt1.o
Patch1002: m68k-Scrt1.patch
###
# Patches awaiting upstream approval
@ -472,6 +474,7 @@ rm nscd/s-stamp
%patch1000 -p1
%patch1001 -p1
%patch1002 -p1
# XXX Disable, it breaks the testsuite, test elf/tst-audit2
# %patch2008 -p1
@ -585,7 +588,7 @@ add_ons=",libidn"
%ifarch %ix86
add_ons=$add_ons,noversion
%endif
%ifarch %arm aarch64 mipsel ia64
%ifarch %arm aarch64 mipsel ia64 m68k
add_ons=$add_ons,ports
%endif
%ifarch mipsel
@ -655,8 +658,11 @@ configure_and_build_glibc() {
# Build POWER-optimized glibc
#
# First, base build:
pBuildFlags="$BuildFlags -mcpu=%{powerpc_optimize_base} -mtune=%{powerpc_optimize_tune}"
%if %{powerpc_optimize_base} != "power3"
pBuildFlags="$BuildFlags -mtune=%{powerpc_optimize_tune}"
%if "%{powerpc_optimize_base}" != ""
pBuildFlags+=" -mcpu=%{powerpc_optimize_base}"
%endif
%if "%{powerpc_optimize_base}" != ""
configure_and_build_glibc base "$pBuildFlags" "$add_ons" --with-cpu=%{powerpc_optimize_base}
%else
# Use no default CPU
@ -1057,7 +1063,7 @@ exit 0
%ifarch ia64
/%{_lib}/ld-linux-ia64.so.2
%endif
%ifarch ppc s390 mips hppa
%ifarch ppc s390 mips hppa m68k
/%{_lib}/ld.so.1
%endif
%ifarch ppc64
@ -1156,7 +1162,7 @@ exit 0
%{_bindir}/getent
%{_bindir}/iconv
%attr(755,root,root) %{_bindir}/ldd
%ifarch %ix86 sparc sparcv9
%ifarch %ix86 sparc sparcv9 m68k
%{_bindir}/lddlibc4
%endif
%{_bindir}/locale

View File

@ -1,3 +1,14 @@
-------------------------------------------------------------------
Mon Oct 14 09:32:44 UTC 2013 - schwab@suse.de
- Depend on gcc defaults for base powerpc optimisations (bnc#844824)
-------------------------------------------------------------------
Fri Oct 11 08:37:38 UTC 2013 - schwab@suse.de
- Enable ports addon for m68k and adapt file list
- m68k-Scrt1.patch: Use PIC for Scrt1.o
-------------------------------------------------------------------
Thu Sep 19 14:12:59 UTC 2013 - schwab@suse.de

View File

@ -77,11 +77,11 @@ BuildRequires: gd-devel
%ifarch ppc ppc64
%define optimize_power 1
%ifarch ppc
%define powerpc_optimize_base power3
%define powerpc_optimize_base %{nil}
%define powerpc_optimize_tune power3
%define powerpc_optimize_cpu_power4 %{normal_build}
%else
%define powerpc_optimize_base power4
%define powerpc_optimize_base %{nil}
%define powerpc_optimize_tune power5
%define powerpc_optimize_cpu_power4 0
%endif
@ -91,7 +91,7 @@ BuildRequires: gd-devel
%define powerpc_optimize_cpu_cell 0
%else
%define optimize_power 0
%define powerpc_optimize_base 0
%define powerpc_optimize_base %{nil}
%define powerpc_optimize_cpu_power4 0
%define powerpc_optimize_cpu_power6 0
%define powerpc_optimize_cpu_power7 0
@ -245,6 +245,8 @@ Patch306: glibc-fix-double-loopback.diff
Patch1000: fcntl-o-tmpfile.patch
# PATCH-FIX-UPSTREAM Integer overflows in malloc
Patch1001: malloc-overflows.patch
# PATCH-FIX-UPSTREAM m68k: Use PIC for Scrt1.o
Patch1002: m68k-Scrt1.patch
###
# Patches awaiting upstream approval
@ -472,6 +474,7 @@ rm nscd/s-stamp
%patch1000 -p1
%patch1001 -p1
%patch1002 -p1
# XXX Disable, it breaks the testsuite, test elf/tst-audit2
# %patch2008 -p1
@ -585,7 +588,7 @@ add_ons=",libidn"
%ifarch %ix86
add_ons=$add_ons,noversion
%endif
%ifarch %arm aarch64 mipsel ia64
%ifarch %arm aarch64 mipsel ia64 m68k
add_ons=$add_ons,ports
%endif
%ifarch mipsel
@ -655,8 +658,11 @@ configure_and_build_glibc() {
# Build POWER-optimized glibc
#
# First, base build:
pBuildFlags="$BuildFlags -mcpu=%{powerpc_optimize_base} -mtune=%{powerpc_optimize_tune}"
%if %{powerpc_optimize_base} != "power3"
pBuildFlags="$BuildFlags -mtune=%{powerpc_optimize_tune}"
%if "%{powerpc_optimize_base}" != ""
pBuildFlags+=" -mcpu=%{powerpc_optimize_base}"
%endif
%if "%{powerpc_optimize_base}" != ""
configure_and_build_glibc base "$pBuildFlags" "$add_ons" --with-cpu=%{powerpc_optimize_base}
%else
# Use no default CPU
@ -1057,7 +1063,7 @@ exit 0
%ifarch ia64
/%{_lib}/ld-linux-ia64.so.2
%endif
%ifarch ppc s390 mips hppa
%ifarch ppc s390 mips hppa m68k
/%{_lib}/ld.so.1
%endif
%ifarch ppc64
@ -1156,7 +1162,7 @@ exit 0
%{_bindir}/getent
%{_bindir}/iconv
%attr(755,root,root) %{_bindir}/ldd
%ifarch %ix86 sparc sparcv9
%ifarch %ix86 sparc sparcv9 m68k
%{_bindir}/lddlibc4
%endif
%{_bindir}/locale

View File

@ -1,3 +1,14 @@
-------------------------------------------------------------------
Mon Oct 14 09:32:44 UTC 2013 - schwab@suse.de
- Depend on gcc defaults for base powerpc optimisations (bnc#844824)
-------------------------------------------------------------------
Fri Oct 11 08:37:38 UTC 2013 - schwab@suse.de
- Enable ports addon for m68k and adapt file list
- m68k-Scrt1.patch: Use PIC for Scrt1.o
-------------------------------------------------------------------
Thu Sep 19 14:12:59 UTC 2013 - schwab@suse.de

View File

@ -78,11 +78,11 @@ BuildRequires: gd-devel
%ifarch ppc ppc64
%define optimize_power 1
%ifarch ppc
%define powerpc_optimize_base power3
%define powerpc_optimize_base %{nil}
%define powerpc_optimize_tune power3
%define powerpc_optimize_cpu_power4 %{normal_build}
%else
%define powerpc_optimize_base power4
%define powerpc_optimize_base %{nil}
%define powerpc_optimize_tune power5
%define powerpc_optimize_cpu_power4 0
%endif
@ -92,7 +92,7 @@ BuildRequires: gd-devel
%define powerpc_optimize_cpu_cell 0
%else
%define optimize_power 0
%define powerpc_optimize_base 0
%define powerpc_optimize_base %{nil}
%define powerpc_optimize_cpu_power4 0
%define powerpc_optimize_cpu_power6 0
%define powerpc_optimize_cpu_power7 0
@ -246,6 +246,8 @@ Patch306: glibc-fix-double-loopback.diff
Patch1000: fcntl-o-tmpfile.patch
# PATCH-FIX-UPSTREAM Integer overflows in malloc
Patch1001: malloc-overflows.patch
# PATCH-FIX-UPSTREAM m68k: Use PIC for Scrt1.o
Patch1002: m68k-Scrt1.patch
###
# Patches awaiting upstream approval
@ -472,6 +474,7 @@ rm nscd/s-stamp
%patch1000 -p1
%patch1001 -p1
%patch1002 -p1
# XXX Disable, it breaks the testsuite, test elf/tst-audit2
# %patch2008 -p1
@ -585,7 +588,7 @@ add_ons=",libidn"
%ifarch %ix86
add_ons=$add_ons,noversion
%endif
%ifarch %arm aarch64 mipsel ia64
%ifarch %arm aarch64 mipsel ia64 m68k
add_ons=$add_ons,ports
%endif
%ifarch mipsel
@ -655,8 +658,11 @@ configure_and_build_glibc() {
# Build POWER-optimized glibc
#
# First, base build:
pBuildFlags="$BuildFlags -mcpu=%{powerpc_optimize_base} -mtune=%{powerpc_optimize_tune}"
%if %{powerpc_optimize_base} != "power3"
pBuildFlags="$BuildFlags -mtune=%{powerpc_optimize_tune}"
%if "%{powerpc_optimize_base}" != ""
pBuildFlags+=" -mcpu=%{powerpc_optimize_base}"
%endif
%if "%{powerpc_optimize_base}" != ""
configure_and_build_glibc base "$pBuildFlags" "$add_ons" --with-cpu=%{powerpc_optimize_base}
%else
# Use no default CPU
@ -1057,7 +1063,7 @@ exit 0
%ifarch ia64
/%{_lib}/ld-linux-ia64.so.2
%endif
%ifarch ppc s390 mips hppa
%ifarch ppc s390 mips hppa m68k
/%{_lib}/ld.so.1
%endif
%ifarch ppc64
@ -1156,7 +1162,7 @@ exit 0
%{_bindir}/getent
%{_bindir}/iconv
%attr(755,root,root) %{_bindir}/ldd
%ifarch %ix86 sparc sparcv9
%ifarch %ix86 sparc sparcv9 m68k
%{_bindir}/lddlibc4
%endif
%{_bindir}/locale

50
m68k-Scrt1.patch Normal file
View File

@ -0,0 +1,50 @@
2013-10-08 Andreas Schwab <schwab@suse.de>
* sysdeps/m68k/start.S [SHARED]: Use PIC.
Index: glibc-2.18/ports/sysdeps/m68k/start.S
===================================================================
--- glibc-2.18.orig/ports/sysdeps/m68k/start.S
+++ glibc-2.18/ports/sysdeps/m68k/start.S
@@ -52,6 +52,8 @@
NULL
*/
+#include <sysdep.h>
+
.text
.globl _start
.type _start,@function
@@ -74,6 +76,24 @@ _start:
pea (%a1) /* Push address of the shared library
termination function. */
+#ifdef SHARED
+ /* Load PIC register. */
+ LOAD_GOT (%a5)
+
+ /* Push the address of our own entry points to `.fini' and
+ `.init'. */
+ move.l __libc_csu_fini@GOT(%a5), -(%sp)
+ move.l __libc_csu_init@GOT(%a5), -(%sp)
+
+ pea (%a0) /* Push second argument: argv. */
+ move.l %d0, -(%sp) /* Push first argument: argc. */
+
+ move.l main@GOT(%a5), -(%sp)
+
+ /* Call the user's main function, and exit with its value. But
+ let the libc call main. */
+ jbsr __libc_start_main@PLTPC
+#else
/* Push the address of our own entry points to `.fini' and
`.init'. */
pea __libc_csu_fini
@@ -87,6 +107,7 @@ _start:
/* Call the user's main function, and exit with its value. But
let the libc call main. */
jbsr __libc_start_main
+#endif
illegal /* Crash if somehow `exit' does return. */