Spec URL: http://people.redhat.com/~dhowells/cross/cross-binutils.spec SRPM URL: http://people.redhat.com/~dhowells/cross/cross-binutils-2.22-1.fc16.src.rpm Description: I've taken the Fedora 16 binutils specfile and modified it greatly so that it builds a cross-build binutils for each of the Linux kernel arches (barring cris, which doesn't build, and unicore, which doesn't seem to exist) and packages each one up in its own binary RPM (named binutils-<arch>-linux-gnu). The packages are configures with "--program-prefix=<arch>-linux-gnu-". Note that the name passed to "--target" may not match the program prefix. For example, binutils-parisc-linux-gnu contains, amongst other things, parisc-linux-gnu-ar, and was build for target hppa-linux. As the manual pages and help files for each instance of the assembler, linker, objdump, objcopy, etc. are exactly the same, these are emitted into the core binary RPM and symlinked from the arch RPMs to save installation space and a dependency is emplaced. I would appreciate a review so that I can get this into Fedora Extra. Many thanks, David
binutils-xtensa-linux-gnu.x86_64: W: cross-directory-hard-link /usr/cross/xtensa-linux-gnu/bin/ranlib /usr/bin/xtensa-linux-gnu-ranlib binutils-xtensa-linux-gnu.x86_64: W: dangling-relative-symlink /usr/share/man/man1/xtensa-linux-gnu-c++filt.1.gz cross-c++filt.1.gz binutils-xtensa-linux-gnu.x86_64: W: no-manual-page-for-binary xtensa-linux-gnu-ld.bfd binutils-xtensa-linux-gnu.x86_64: W: non-standard-dir-in-usr cross You've explained the dangling symlinks, and I think that's OK. If you can arrange a man page for ld, that would be nice but it's not mandatory. We'll have to check what the rules are for non-standard directories in /usr, and the cross-directory hard links. Also: cross-binutils.src:49: W: macro-in-comment %{version} cross-binutils.src:138: W: macro-in-comment %ifarch cross-binutils.src:139: W: macro-in-comment %if cross-binutils.src:139: W: macro-in-comment %{_lib} cross-binutils.src:140: W: macro-in-comment %patch03 cross-binutils.src:141: W: macro-in-comment %endif cross-binutils.src:142: W: macro-in-comment %endif cross-binutils.src:398: W: macro-in-comment %{buildroot} cross-binutils.src:398: W: macro-in-comment %{_prefix} cross-binutils.src:399: W: macro-in-comment %{buildroot} cross-binutils.src:399: W: macro-in-comment %{_mandir} cross-binutils.src: W: patch-not-applied Patch3: binutils-2.20.51.0.2-ia64-lib64.patch
(In reply to comment #1) > You've explained the dangling symlinks, and I think that's OK. Possibly I should just put all the manual page symlinks into the doc rpm, though I'd prefer them only to be installed if the things they're describing are present. > If you can arrange a man page for ld, that would be nice but it's not mandatory. There are manual pages for ld. Do you mean ld.bfd? If so, there is no manual page specifically for that. I'm not entirely sure what the ld.bfd is for. > We'll have to check what the rules are for non-standard directories in /usr, I wonder if that's going to happen if I let it create, say, /usr/xtensa-linux-gnu/ instead of /usr/cross/xtensa-linux-gnu/. I wonder if these things should be in /usr/libexec. > and the cross-directory hard links. I missed that. Interesting... I wonder if the core binutils package does this too. Even though it's marked as a cross-dir hardlink, it isn't installed so (even though it could be). > Also: > cross-binutils.src:49: W: macro-in-comment %{version} That's a comment borrowed from the original binutils.spec. I should probably keep it as long as that does. > cross-binutils.src:138: W: macro-in-comment %ifarch > cross-binutils.src:139: W: macro-in-comment %if > cross-binutils.src:139: W: macro-in-comment %{_lib} > cross-binutils.src:140: W: macro-in-comment %patch03 > cross-binutils.src:141: W: macro-in-comment %endif > cross-binutils.src:142: W: macro-in-comment %endif I'm not sure whether I need this. I should find an IA64 box and try it. > cross-binutils.src:398: W: macro-in-comment %{buildroot} > cross-binutils.src:398: W: macro-in-comment %{_prefix} > cross-binutils.src:399: W: macro-in-comment %{buildroot} > cross-binutils.src:399: W: macro-in-comment %{_mandir} I should get rid of those. > cross-binutils.src: W: patch-not-applied Patch3: > binutils-2.20.51.0.2-ia64-lib64.patch That's one of the original binutils.spec patches and is related to the macro-in-comment warnings of lines 138-142. I wonder if I should just apply all of the original binutils.spec patches as applied by that?
I've fixed the warnings that can be fixed; I have left the dangling symlink warnings as they refer are cross-package references to the common manual pages, and, after asking advice, I've left the hardlinks in. The revised SRPM can be found here: http://people.redhat.com/~dhowells/cross/cross-binutils-2.22-1.1.fc16.src.rpm I've tacked on an extra bit to the revision ID to retain the revision number of the Fedora binutils package from which I derived this whilst adding a differentiator for my own changes. The revised specfile can be found here: http://people.redhat.com/~dhowells/cross/cross-binutils.spec Note that this is the same place as the previous one, which has been renamed.
I've updated to binutils-2.22.25.0.1-8. The revised SRPM and specfile are: http://people.redhat.com/~dhowells/cross/cross-binutils-2.22.52.0.1-8.1.fc16.src.rpm http://people.redhat.com/~dhowells/cross/cross-binutils-2.22.52.0.1.spec
Created attachment 571742 [details] rpmlint of the most recent SRPM and built RPM files
This looks fine now, go ahead. Thanks.
New Package SCM Request ======================= Package Name: cross-binutils Short Description: Cross-compilation binutils Owners: dhowells Branches: f16 f17 InitialCC:
Git done (by process-git-requests). David W, please take ownership of review BZs, thanks!
cross-binutils-2.22.52.0.1-8.1.fc16,cross-gcc-4.7.0-0.11.4.fc16 has been submitted as an update for Fedora 16. https://admin.fedoraproject.org/updates/cross-binutils-2.22.52.0.1-8.1.fc16,cross-gcc-4.7.0-0.11.4.fc16
cross-binutils-2.22.52.0.1-8.1.fc17,cross-gcc-4.7.0-0.11.4.fc17 has been submitted as an update for Fedora 17. https://admin.fedoraproject.org/updates/cross-binutils-2.22.52.0.1-8.1.fc17,cross-gcc-4.7.0-0.11.4.fc17
cross-binutils-2.22.52.0.1-8.1.fc17, cross-gcc-4.7.0-0.11.4.fc17 has been pushed to the Fedora 17 testing repository.