From b051699953e9034f8e02dab37f7cb2e14bd0d2a31ac4e5b91ca9e14463cd7a67 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Sun, 29 May 2016 01:11:02 +0000 Subject: [PATCH] Accepting request 396466 from Base:System Newlib is a C standard library, used both for some embedded targets and as intermediate step for building glibc or uClibc cross-compilers. This package serves as source package for deriving target-specific cross-*-newlib-devel packages. gcc5/gcc6 packages have already been prepared for this cross dependency. OBS-URL: https://build.opensuse.org/request/show/396466 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/newlib?expand=0&rev=1 --- .gitattributes | 23 +++++++++++++++ .gitignore | 1 + epiphany-fixes.diff | 13 +++++++++ newlib-2.4.0.tar.gz | 3 ++ newlib.changes | 66 ++++++++++++++++++++++++++++++++++++++++++ newlib.spec | 70 +++++++++++++++++++++++++++++++++++++++++++++ newlib.spec.in | 66 ++++++++++++++++++++++++++++++++++++++++++ pre_checkin.sh | 17 +++++++++++ 8 files changed, 259 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 epiphany-fixes.diff create mode 100644 newlib-2.4.0.tar.gz create mode 100644 newlib.changes create mode 100644 newlib.spec create mode 100644 newlib.spec.in create mode 100644 pre_checkin.sh diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -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 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/epiphany-fixes.diff b/epiphany-fixes.diff new file mode 100644 index 0000000..13ba3ba --- /dev/null +++ b/epiphany-fixes.diff @@ -0,0 +1,13 @@ +Index: newlib-2.1.0/libgloss/epiphany/Makefile.in +=================================================================== +--- newlib-2.1.0.orig/libgloss/epiphany/Makefile.in ++++ newlib-2.1.0/libgloss/epiphany/Makefile.in +@@ -184,7 +184,7 @@ distclean maintainer-clean realclean: cl + install: + @for outputs in ${OUTPUTS}; do\ + mkdir -p $(DESTDIR)$(tooldir)/lib${MULTISUBDIR}; \ +- $(INSTALL_PROGRAM) $${outputs} $(DESTDIR)$(tooldir)/lib${MULTISUBDIR}; \ ++ $(INSTALL_DATA) $${outputs} $(DESTDIR)$(tooldir)/lib${MULTISUBDIR}; \ + done + info: + install-info: diff --git a/newlib-2.4.0.tar.gz b/newlib-2.4.0.tar.gz new file mode 100644 index 0000000..04d9cc6 --- /dev/null +++ b/newlib-2.4.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:545b3d235e350d2c61491df8b9f775b1b972f191380db8f52ec0b1c829c52706 +size 17574364 diff --git a/newlib.changes b/newlib.changes new file mode 100644 index 0000000..d404c7a --- /dev/null +++ b/newlib.changes @@ -0,0 +1,66 @@ +------------------------------------------------------------------- +Tue May 17 17:55:35 UTC 2016 - afaerber@suse.de + +- Drop newlib-rpmlintrc + +------------------------------------------------------------------- +Sat May 14 00:18:57 UTC 2016 - afaerber@suse.de + +- Apply epiphany-fixes.diff not only to cross builds (.spec.in) but + also in newlib.spec, to please factory-auto checker (sr#395228) + +------------------------------------------------------------------- +Fri May 13 16:57:05 UTC 2016 - afaerber@suse.de + +- Prepare rl78 target +- Update to 2.4.0 +* Info files are no longer built +* Package all license and read-me files +- Clean up makeinfo dependency +- Drop cross .spec files in preparation for Factory submission + +------------------------------------------------------------------- +Mon Jul 20 21:52:07 UTC 2015 - afaerber@suse.de + +- Update to 2.2.0.20150623 +- Add cross-rx-newlib-devel package +- Revert installing files to sysroot + +------------------------------------------------------------------- +Fri Jul 10 21:50:42 UTC 2015 - afaerber@suse.de + +- Switch cross template to gcc5 + +------------------------------------------------------------------- +Mon Apr 6 15:53:44 UTC 2015 - afaerber@suse.de + +- Install target files to sysroot + +------------------------------------------------------------------- +Sat Nov 1 00:52:40 UTC 2014 - afaerber@suse.de + +- Enable native builds + +------------------------------------------------------------------- +Fri Oct 31 21:08:45 UTC 2014 - afaerber@suse.de + +- epiphany-fixes.diff: Drop executable permissions of + libepiphany.a and crt0.o + +------------------------------------------------------------------- +Fri Oct 31 20:05:26 UTC 2014 - afaerber@suse.de + +- Turn cross-epiphany-newlib into generic newlib package +* Rename packages to -devel to avoid empty -newlib packages + +------------------------------------------------------------------- +Tue Oct 21 07:21:21 UTC 2014 - afaerber@suse.de + +- Update to official 2.1.0 tarball +* Drop portability.patch + +------------------------------------------------------------------- +Tue Sep 30 02:29:16 UTC 2014 - afaerber@suse.de + +- Initial + diff --git a/newlib.spec b/newlib.spec new file mode 100644 index 0000000..8e9418c --- /dev/null +++ b/newlib.spec @@ -0,0 +1,70 @@ +# +# spec file for package newlib +# +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + + +Name: newlib +Version: 2.4.0 +Release: 0 +Summary: C library intended for use on embedded systems +License: BSD-3-Clause and MIT and LGPL-2.0+ and ISC +Group: Development/Tools +Url: https://sourceware.org/newlib/ +Source0: ftp://sourceware.org/pub/newlib/newlib-%{version}.tar.gz + +Patch1: epiphany-fixes.diff + +%if %{suse_version} > 1220 +BuildRequires: makeinfo +%else +BuildRequires: texinfo +%endif + +%description +Newlib is a C library intended for use on embedded systems. It is a +conglomeration of several library parts, all under free software licenses +that make them easily usable on embedded products. + +%prep +%setup -q +%patch1 -p1 + +%build +mkdir build-dir +cd build-dir +# On %%ix86 hosts newlib is documented to be buildable as shared library via --with-newlib, +# but it fails to build for us and we don't need a host library at the moment. +../configure \ + --prefix=%{_prefix} --libdir=%{_libdir} --mandir=%{_mandir} --infodir=%{_infodir} \ +%ifarch %ix86 +%if 0 + --with-newlib \ +%endif +%endif + CFLAGS="%{optflags}" + +make %{?_smp_mflags} + +%install +cd build-dir +make install DESTDIR=%{buildroot} + +%files +%defattr(-,root,root,-) +%doc COPYING.NEWLIB COPYING.LIBGLOSS COPYING COPYING.LIB COPYING3 COPYING3.LIB +%doc newlib/README newlib/NEWS + +%changelog diff --git a/newlib.spec.in b/newlib.spec.in new file mode 100644 index 0000000..99b401b --- /dev/null +++ b/newlib.spec.in @@ -0,0 +1,66 @@ + +Name: cross-%{cross_arch}-newlib-devel +Version: 2.4.0 +Release: 0 +Summary: C library intended for use on %{cross_arch} embedded systems +Group: Development/Tools +License: BSD-3-Clause and MIT and LGPL-2.0+ and ISC +URL: https://sourceware.org/newlib/ +Source0: ftp://sourceware.org/pub/newlib/newlib-%{version}.tar.gz + +Patch1: epiphany-fixes.diff + +BuildRequires: cross-%{cross_arch}-binutils +BuildRequires: cross-%{cross_arch}-gcc@gcc_base_ver@-bootstrap +%if %{suse_version} > 1220 +BuildRequires: makeinfo +%else +BuildRequires: texinfo +%endif + +%description +Newlib is a C library intended for use on embedded systems. It is a +conglomeration of several library parts, all under free software licenses +that make them easily usable on embedded products. + +%define target %{cross_arch} +%if %{cross_arch} == "epiphany" || %{cross_arch} == "rl78" || %{cross_arch} == "rx" +%define target %{cross_arch}-elf +%endif +%if %{cross_arch} == "spu" +%define sysroot /usr/spu +%else +%define sysroot %{_prefix}/%{target}/sys-root +%endif + +%prep +%setup -q -n newlib-%{version} +%patch1 -p1 + +%build +mkdir build-dir +cd build-dir +../configure \ + --prefix=%{_prefix} --libdir=%{_libdir} --mandir=%{_mandir} --infodir=%{_infodir} \ + --target=%{target} --with-build-sysroot=%{sysroot} \ + CC_FOR_TARGET=%{target}-gcc%{gcc_binsuffix} \ + CXX_FOR_TARGET=%{target}-g++%{gcc_binsuffix} \ + GCC_FOR_TARGET=%{target}-gcc%{gcc_binsuffix} +make %{?_smp_mflags} + +%install +# All binaries built are for the target architecture - don't damage them. +export NO_BRP_STRIP_DEBUG=true +export NO_DEBUGINFO_STRIP_DEBUG=true +%define __debug_install_post %{nil} +: >debugfiles.list +: >debugsources.list + +cd build-dir +make install DESTDIR=%{buildroot} + +%files +%defattr(-,root,root,-) +%{_prefix}/%{target}/ + +%changelog diff --git a/pre_checkin.sh b/pre_checkin.sh new file mode 100644 index 0000000..aa66573 --- /dev/null +++ b/pre_checkin.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +gcc_base_ver=5 +gcc_binsuffix=-5 + +rm -f cross*.spec cross*.changes + +for arch in ; do + pkgname=cross-$arch-newlib-devel + outfile=$pkgname.spec + echo "%define cross_arch $arch" > $outfile + echo "%define gcc_binsuffix ${gcc_binsuffix}" >> $outfile + sed -e "s#@gcc_base_ver@#$gcc_base_ver#" newlib.spec.in >> $outfile + cp newlib.changes $pkgname.changes +done + +osc service localrun format_spec_file