Re: [PATCH] Add kernel-cross-headers subpackage

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Feb 11, 2016 at 10:03 AM, Josh Boyer <jwboyer@xxxxxxxxxxxxxxxxx> wrote:
> The kernel-headers package it primarily used in Fedora to build the
> toolchain components.  This works fine for native builds, but we do
> not have cross-architecture headers available.  That means that the
> cross compiler toolchains we have can only be built without headers
> and therefore are only useful for building the kernel.  Given that
> Fedora does not allow cross-compiling of it's packages, that hasn't
> been a problem to date.
>
> However, the toolchains might be used by application developers to
> build their own software.  Providing the ability to build cross
> toolchains that offer glibc as well may benefit these users.  This
> provides a kernel-cross-headers package that will at least allow
> this possibility.

Scratch build with this patch included:

http://koji.fedoraproject.org/koji/taskinfo?taskID=12930336

josh

> ---
>  kernel.spec | 47 +++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 47 insertions(+)
>
> diff --git a/kernel.spec b/kernel.spec
> index 5578b2c..5253426 100644
> --- a/kernel.spec
> +++ b/kernel.spec
> @@ -90,6 +90,7 @@ Summary: The Linux kernel
>  %define with_debug     %{?_without_debug:     0} %{?!_without_debug:     1}
>  # kernel-headers
>  %define with_headers   %{?_without_headers:   0} %{?!_without_headers:   1}
> +%define with_cross_headers   %{?_without_cross_headers:   0} %{?!_without_cross_headers:   1}
>  # perf
>  %define with_perf      %{?_without_perf:      0} %{?!_without_perf:      1}
>  # tools
> @@ -227,6 +228,7 @@ Summary: The Linux kernel
>  %ifarch noarch
>  %define with_up 0
>  %define with_headers 0
> +%define with_cross_headers 0
>  %define with_tools 0
>  %define with_perf 0
>  %define all_arch_configs kernel-%{version}-*.config
> @@ -291,6 +293,7 @@ Summary: The Linux kernel
>  # just like we used to only build them on i386 for x86
>  %ifnarch armv7hl
>  %define with_headers 0
> +%define with_cross_headers 0
>  %define with_perf 0
>  %define with_tools 0
>  %endif
> @@ -649,6 +652,17 @@ header files define structures and constants that are needed for
>  building most standard programs and are also needed for rebuilding the
>  glibc package.
>
> +%package cross-headers
> +Summary: Header files for the Linux kernel for use by cross-glibc
> +Group: Development/System
> +%description cross-headers
> +Kernel-cross-headers includes the C header files that specify the interface
> +between the Linux kernel and userspace libraries and programs.  The
> +header files define structures and constants that are needed for
> +building most standard programs and are also needed for rebuilding the
> +cross-glibc package.
> +
> +
>  %package bootwrapper
>  Summary: Boot wrapper files for generating combined kernel + initrd images
>  Group: Development/System
> @@ -1738,6 +1752,33 @@ find $RPM_BUILD_ROOT/usr/include \
>
>  %endif
>
> +%if %{with_cross_headers}
> +mkdir -p $RPM_BUILD_ROOT/usr/tmp-headers
> +make ARCH=%{hdrarch} INSTALL_HDR_PATH=$RPM_BUILD_ROOT/usr/tmp-headers headers_install_all
> +
> +find $RPM_BUILD_ROOT/usr/tmp-headers/include \
> +     \( -name .install -o -name .check -o \
> +       -name ..install.cmd -o -name ..check.cmd \) | xargs rm -f
> +
> +# Copy all the architectures we care about to their respective asm directories
> +for arch in arm arm64 powerpc s390 x86 ; do
> +mkdir -p $RPM_BUILD_ROOT/usr/${arch}-linux-gnu/include
> +mv $RPM_BUILD_ROOT/usr/tmp-headers/include/asm-${arch} $RPM_BUILD_ROOT/usr/${arch}-linux-gnu/include/asm
> +cp -a $RPM_BUILD_ROOT/usr/tmp-headers/include/asm-generic $RPM_BUILD_ROOT/usr/${arch}-linux-gnu/include/.
> +done
> +
> +# Remove the rest of the architectures
> +rm -rf $RPM_BUILD_ROOT/usr/tmp-headers/include/arch*
> +rm -rf $RPM_BUILD_ROOT/usr/tmp-headers/include/asm-*
> +
> +# Copy the rest of the headers over
> +for arch in arm arm64 powerpc s390 x86 ; do
> +cp -a $RPM_BUILD_ROOT/usr/tmp-headers/include/* $RPM_BUILD_ROOT/usr/${arch}-linux-gnu/include/.
> +done
> +
> +rm -rf $RPM_BUILD_ROOT/usr/tmp-headers
> +%endif
> +
>  %if %{with_perf}
>  # perf tool binary and supporting scripts/binaries
>  %{perf_make} DESTDIR=$RPM_BUILD_ROOT lib=%{_lib} install-bin install-traceevent-plugins
> @@ -1924,6 +1965,12 @@ fi
>  /usr/include/*
>  %endif
>
> +%if %{with_cross_headers}
> +%files cross-headers
> +%defattr(-,root,root)
> +/usr/*-linux-gnu/include/*
> +%endif
> +
>  %if %{with_bootwrapper}
>  %files bootwrapper
>  %defattr(-,root,root)
> --
> 2.5.0
> _______________________________________________
> kernel mailing list
> kernel@xxxxxxxxxxxxxxxxxxxxxxx
> http://lists.fedoraproject.org/admin/lists/kernel@xxxxxxxxxxxxxxxxxxxxxxx
_______________________________________________
kernel mailing list
kernel@xxxxxxxxxxxxxxxxxxxxxxx
http://lists.fedoraproject.org/admin/lists/kernel@xxxxxxxxxxxxxxxxxxxxxxx




[Index of Archives]     [Fedora General Discussion]     [Older Fedora Users Archive]     [Fedora Advisory Board]     [Fedora Security]     [Fedora Devel Java]     [Fedora Legacy]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Mentors]     [Fedora Package Announce]     [Fedora Package Review]     [Fedora Music]     [Fedora Packaging]     [Centos]     [Fedora SELinux]     [Coolkey]     [Yum Users]     [Tux]     [Yosemite News]     [KDE Users]     [Fedora Art]     [Fedora Docs]     [USB]     [Asterisk PBX]

  Powered by Linux