Fix elf-default-arch detection to work on secondary archs (RHBZ#634951)
authorDan Horák <dan@danny.cz>
Fri, 17 Sep 2010 13:13:27 +0000 (14:13 +0100)
committerRichard W.M. Jones <rjones@redhat.com>
Fri, 17 Sep 2010 13:15:43 +0000 (14:15 +0100)
Recent state of the elf-default-arch script and the hardcoded i386 arch doesn't
allow building on other arches than ix86 or x86_64. See attachment for a fix.
Can be easily extended to support additional secondary arches by adding new
patterns to the elf-default-arch script

helper/Makefile.am
helper/elf-default-arch

index 940a2ee..804fa49 100644 (file)
@@ -43,12 +43,13 @@ init_CFLAGS = -static
 init_LDFLAGS = -all-static
 
 # http://www.doof.me.uk/2010/05/07/cute-objcopy-hack/
-ELF_DEFAULT_ARCH = $(shell $(srcdir)/elf-default-arch)
+ELF_DEFAULT_ARCH = $(shell $(srcdir)/elf-default-arch | gawk '{ print $$1 }')
+DEFAULT_ARCH = $(shell $(srcdir)/elf-default-arch | gawk '{ print $$2 }')
 ext2init.o: init
        strip --strip-all $<
        @file $< | grep -isq static || \
          (echo "*** error: init is not staticly linked"; exit 1)
-       objcopy -I binary -B i386 -O $(ELF_DEFAULT_ARCH) $< $@
+       objcopy -I binary -B $(DEFAULT_ARCH) -O $(ELF_DEFAULT_ARCH) $< $@
 
 man_MANS = \
        febootstrap-supermin-helper.8
index 0adc351..66cfbab 100755 (executable)
 # so instead we hard code it.
 
 case $(uname -m) in
-    i[3456]86) echo elf32-i386 ;;
-    x86_64) echo elf64-x86-64 ;;
+    i[3456]86) echo "elf32-i386 i386" ;;
+    x86_64) echo "elf64-x86-64 i386" ;;
+    s390) echo "elf32-s390 s390:31-bit" ;;
+    s390x) echo "elf64-s390 s390:31-bit" ;;
     *)
         echo "This architecture is not recognized.  Please update helper/elf-default-arch."
 esac