diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9878106 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/openbios-1.0-svn1061.tar.gz diff --git a/openbios-no-werror.patch b/openbios-no-werror.patch new file mode 100644 index 0000000..8c31123 --- /dev/null +++ b/openbios-no-werror.patch @@ -0,0 +1,13 @@ +Index: Makefile.target +=================================================================== +--- Makefile.target (revision 1061) ++++ Makefile.target (working copy) +@@ -30,7 +30,7 @@ + CFLAGS+= -Wall -Wredundant-decls -Wshadow -Wpointer-arith + CFLAGS+= -Wstrict-prototypes -Wmissing-declarations -Wundef -Wendif-labels + CFLAGS+= -Wstrict-aliasing -Wwrite-strings -Wmissing-prototypes -Wnested-externs +-CFLAGS+= -Werror ++#CFLAGS+= -Werror + # Flags for dependency generation + CFLAGS+= -MMD -MP -MT $@ -MF '$(*D)/$(*F).d' + INCLUDES := -I$(SRCDIR)/include -I$(SRCDIR)/kernel/include -I$(ODIR)/target/include diff --git a/openbios-ppc.patch b/openbios-ppc.patch new file mode 100644 index 0000000..6280eef --- /dev/null +++ b/openbios-ppc.patch @@ -0,0 +1,27 @@ +Index: config/scripts/switch-arch +=================================================================== +--- config/scripts/switch-arch (revision 1061) ++++ config/scripts/switch-arch (working copy) +@@ -230,9 +230,9 @@ + ;; + + ppc) +- select_prefix powerpc ++ select_prefix powerpc64 + if [ "$unix" = "no" ]; then +- CFLAGS="-msoft-float -fno-builtin-bcopy -fno-builtin-log2" ++ CFLAGS="-msoft-float -fno-builtin-bcopy -fno-builtin-log2 -m32" + else + CFLAGS="-fno-builtin" + fi +Index: arch/ppc/qemu/ldscript +=================================================================== +--- arch/ppc/qemu/ldscript (revision 1061) ++++ arch/ppc/qemu/ldscript (working copy) +@@ -1,5 +1,5 @@ + OUTPUT_FORMAT(elf32-powerpc) +-OUTPUT_ARCH(powerpc) ++OUTPUT_ARCH(powerpc:common) + + /* Initial load address + */ diff --git a/openbios-sparc.patch b/openbios-sparc.patch new file mode 100644 index 0000000..99a8f13 --- /dev/null +++ b/openbios-sparc.patch @@ -0,0 +1,13 @@ +Index: config/scripts/switch-arch +=================================================================== +--- config/scripts/switch-arch (revision 1061) ++++ config/scripts/switch-arch (working copy) +@@ -247,7 +247,7 @@ + ;; + + sparc32) +- select_prefix sparc ++ select_prefix sparc64 + CFLAGS="-Wa,-xarch=v8 -Wa,-32 -m32 -mcpu=supersparc -fno-builtin" + AS_FLAGS="-Wa,-xarch=v8 -Wa,-32" + ;; diff --git a/openbios.spec b/openbios.spec new file mode 100644 index 0000000..afd026d --- /dev/null +++ b/openbios.spec @@ -0,0 +1,100 @@ +%global svnrel 1061 + +# Disable unhelpful RPM test. +%global _binaries_in_noarch_packages_terminate_build 0 + +Name: openbios +Version: 1.0 +Release: 5.svn%{svnrel}%{?dist} +Summary: OpenBIOS implementation of IEEE 1275-1994 + +License: GPLv2 +URL: http://www.openfirmware.info/OpenBIOS +BuildArch: noarch + +# There are no upstream tarballs. This tarball is prepared as follows: +# +# svn export -r %{svnrel} \ +# svn://username@openbios.org/openbios/trunk/openbios-devel \ +# %{name}-%{version} +# tar czf %{name}-%{version}-svn%{svnrel}.tar.gz %{name}-%{version} +# rm -r %{name}-%{version} +Source0: %{name}-%{version}-svn%{svnrel}.tar.gz + +# Remove -Werror from flags (not for upstream). +Patch0: openbios-no-werror.patch + +# Fix for ppc 32 bit support. +# Not suitable for upstream because it's specific to Fedora cross-gcc. +Patch1: openbios-ppc.patch + +# Fix for sparc 32 bit support. +# Not suitable for upstream because it's specific to Fedora cross-gcc. +Patch2: openbios-sparc.patch + +# Note that these packages build 32 bit binaries with the -m32 flag. +BuildRequires: gcc-powerpc64-linux-gnu +BuildRequires: gcc-sparc64-linux-gnu + +BuildRequires: libxslt + + +%description +The OpenBIOS project provides you with most free and open source Open +Firmware implementations available. Here you find several +implementations of IEEE 1275-1994 (Referred to as Open Firmware) +compliant firmware. Among its features, Open Firmware provides an +instruction set independent device interface. This can be used to boot +the operating system from expansion cards without native +initialization code. + +It is Open Firmware's goal to work on all common platforms, like x86, +AMD64, PowerPC, ARM and Mips. With its flexible and modular design, +Open Firmware targets servers, workstations and embedded systems, +where a sane and unified firmware is a crucial design goal and reduces +porting efforts noticably. + +Open Firmware is found on many servers and workstations and there are +sever commercial implementations from SUN, Firmworks, CodeGen, Apple, +IBM and others. + +In most cases, the Open Firmware implementations provided on this site +rely on an additional low-level firmware for hardware initialization, +such as coreboot or U-Boot. + + +%prep +%setup -q +%patch0 -p0 +%patch1 -p0 +%patch2 -p0 + + +%build +/bin/sh config/scripts/switch-arch ppc +/bin/sh config/scripts/switch-arch sparc32 +/bin/sh config/scripts/switch-arch sparc64 +make build-verbose V=1 %{?_smp_mflags} + + +%install +qemudir=$RPM_BUILD_ROOT%{_datadir}/qemu +mkdir -p $qemudir +cp -a obj-ppc/openbios-qemu.elf $qemudir/openbios-ppc +cp -a obj-sparc32/openbios-builtin.elf $qemudir/openbios-sparc32 +cp -a obj-sparc64/openbios-builtin.elf $qemudir/openbios-sparc64 + + +%files +%doc COPYING +%doc README +%doc VERSION +%dir %{_datadir}/qemu +%{_datadir}/qemu/openbios-ppc +%{_datadir}/qemu/openbios-sparc32 +%{_datadir}/qemu/openbios-sparc64 + + +%changelog +* Tue Jul 31 2012 Richard W.M. Jones - 1.0-5.svn1061 +- Initial release in Fedora. diff --git a/sources b/sources new file mode 100644 index 0000000..c4ffbe7 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +96351b8ef6720438e812dd5ff209bfc5 openbios-1.0-svn1061.tar.gz