SHA256
1
0
forked from pool/newlib

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
This commit is contained in:
Dominique Leuenberger 2016-05-29 01:11:02 +00:00 committed by Git OBS Bridge
commit b051699953
8 changed files with 259 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -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

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

13
epiphany-fixes.diff Normal file
View File

@ -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:

3
newlib-2.4.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:545b3d235e350d2c61491df8b9f775b1b972f191380db8f52ec0b1c829c52706
size 17574364

66
newlib.changes Normal file
View File

@ -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

70
newlib.spec Normal file
View File

@ -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

66
newlib.spec.in Normal file
View File

@ -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

17
pre_checkin.sh Normal file
View File

@ -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