Selaa lähdekoodia

Backport a few patches from Barrier Breaker to improve grub2 support

Matthias Schiffer 10 vuotta sitten
vanhempi
commit
42da0db96c

+ 110 - 0
patches/openwrt/0022-x86-add-grub2-iso-support.patch

@@ -0,0 +1,110 @@
+From: nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
+Date: Sun, 7 Oct 2012 23:01:52 +0000
+Subject: x86: add grub2 iso support
+
+diff --git a/Config.in b/Config.in
+index 5b4522e..54df7c8 100644
+--- a/Config.in
++++ b/Config.in
+@@ -81,7 +81,7 @@ menu "Target Images"
+ 	config TARGET_ROOTFS_ISO
+ 		bool "iso"
+ 		default n
+-		depends TARGET_ROOTFS_INITRAMFS && TARGET_x86
++		depends on TARGET_x86_generic
+ 		help
+ 		  Create some bootable ISO image
+ 
+diff --git a/target/linux/x86/base-files/lib/preinit/20_check_iso b/target/linux/x86/base-files/lib/preinit/20_check_iso
+new file mode 100644
+index 0000000..beff6eb
+--- /dev/null
++++ b/target/linux/x86/base-files/lib/preinit/20_check_iso
+@@ -0,0 +1,5 @@
++check_for_iso() {
++	grep -qE '/dev/root.*iso9660' /proc/mounts && ramoverlay
++}
++
++boot_hook_add preinit_mount_root check_for_iso
+diff --git a/target/linux/x86/image/Makefile b/target/linux/x86/image/Makefile
+index 13da511..8f0debd 100644
+--- a/target/linux/x86/image/Makefile
++++ b/target/linux/x86/image/Makefile
+@@ -9,7 +9,8 @@ include $(INCLUDE_DIR)/image.mk
+ 
+ export PATH=$(TARGET_PATH):/sbin
+ 
+-GRUB2_MODULES = biosdisk boot chain configfile ext2 linux ls part_msdos reboot serial vga
++GRUB2_MODULES = at_keyboard biosdisk boot chain configfile ext2 linux ls part_msdos reboot serial vga
++GRUB2_MODULES_ISO = at_keyboard biosdisk boot chain configfile iso9660 linux ls part_msdos reboot serial vga
+ GRUB_TERMINALS =
+ GRUB_SERIAL_CONFIG =
+ GRUB_TERMINAL_CONFIG =
+@@ -51,7 +52,7 @@ ifneq ($(CONFIG_X86_GRUB_IMAGES),)
+   define Image/cmdline/ext4
+     root=$(ROOTPART) rootfstype=ext4 rootwait
+   endef
+-  
++
+   define Image/cmdline/jffs2-64k
+     block2mtd.block2mtd=$(ROOTPART),65536,rootfs root=/dev/mtdblock0 rootfstype=jffs2 rootwait
+   endef
+@@ -165,7 +166,31 @@ define Image/Build/squashfs
+ 	$(call prepare_generic_squashfs,$(KDIR)/root.squashfs)
+ endef
+ 
+-define Image/Build/iso 
++ifdef CONFIG_X86_USE_GRUB2
++  define Image/Build/iso
++	$(INSTALL_DIR) $(KDIR)/root.grub/boot/grub $(KDIR)/grub2
++	$(CP) $(KDIR)/bzImage $(KDIR)/root.grub/boot/vmlinuz
++	grub-mkimage \
++		-o $(KDIR)/grub2/eltorito.img \
++		-O i386-pc \
++		-c ./grub-early.cfg \
++		$(GRUB2_MODULES_ISO)
++	cat \
++		$(STAGING_DIR_HOST)/lib/grub/i386-pc/cdboot.img \
++		$(KDIR)/grub2/eltorito.img \
++		> $(KDIR)/root.grub/boot/grub/eltorito.img
++	sed \
++		-e 's#@SERIAL_CONFIG@#$(strip $(GRUB_SERIAL_CONFIG))#g' \
++		-e 's#@TERMINAL_CONFIG@#$(strip $(GRUB_TERMINAL_CONFIG))#g' \
++		-e 's#@CMDLINE@#root=/dev/sr0 rootfstype=iso9660 rootwait $(strip $(call Image/cmdline/$(1)) $(BOOTOPTS) $(GRUB_CONSOLE_CMDLINE))#g' \
++		-e 's#@TIMEOUT@#$(GRUB_TIMEOUT)#g' \
++		./grub-iso.cfg > $(KDIR)/root.grub/boot/grub/grub.cfg
++	$(CP) $(KDIR)/bzImage $(KDIR)/root.grub/boot/vmlinuz
++	mkisofs -R -b boot/grub/eltorito.img -no-emul-boot -boot-info-table \
++		-o $(KDIR)/root.iso $(KDIR)/root.grub $(TARGET_DIR)
++  endef
++else
++  define Image/Build/iso
+ 	$(INSTALL_DIR) $(KDIR)/root.grub/boot/grub
+ 	$(CP) \
+ 		$(KDIR)/stage2_eltorito \
+@@ -179,7 +204,8 @@ define Image/Build/iso
+ 	$(CP) $(KDIR)/bzImage $(KDIR)/root.grub/boot/vmlinuz 
+ 	mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table \
+ 		-o $(KDIR)/root.iso $(KDIR)/root.grub 
+-endef 
++  endef
++endif
+ 
+ ifneq ($(CONFIG_X86_VDI_IMAGES),)
+   define Image/Build/vdi
+diff --git a/target/linux/x86/image/grub-iso.cfg b/target/linux/x86/image/grub-iso.cfg
+new file mode 100644
+index 0000000..4d5d697
+--- /dev/null
++++ b/target/linux/x86/image/grub-iso.cfg
+@@ -0,0 +1,10 @@
++@SERIAL_CONFIG@
++@TERMINAL_CONFIG@
++
++set default="0"
++set timeout="@TIMEOUT@"
++set root='(cd)'
++
++menuentry "OpenWrt" {
++	linux /boot/vmlinuz @CMDLINE@ noinitrd reboot=bios
++}

+ 24 - 0
patches/openwrt/0023-x86-explicitely-pass-staging-directory-to-grub-mkimage-instead-of-relying-on-build-time-defaults-12821.patch

@@ -0,0 +1,24 @@
+From: jow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>
+Date: Thu, 17 Jan 2013 15:46:26 +0000
+Subject: x86: explicitely pass staging directory to grub-mkimage instead of relying on build time defaults (#12821)
+
+diff --git a/target/linux/x86/image/Makefile b/target/linux/x86/image/Makefile
+index 8f0debd..6e2bd54 100644
+--- a/target/linux/x86/image/Makefile
++++ b/target/linux/x86/image/Makefile
+@@ -102,6 +102,7 @@ ifneq ($(CONFIG_X86_GRUB_IMAGES),)
+ 	$(INSTALL_DIR) $(KDIR)/root.grub/boot/grub $(KDIR)/grub2
+ 	$(CP) $(KDIR)/bzImage $(KDIR)/root.grub/boot/vmlinuz
+ 	grub-mkimage \
++		-d $(STAGING_DIR_HOST)/lib/grub/i386-pc \
+ 		-o $(KDIR)/grub2/core.img \
+ 		-O i386-pc \
+ 		-c ./grub-early.cfg \
+@@ -171,6 +172,7 @@ ifdef CONFIG_X86_USE_GRUB2
+ 	$(INSTALL_DIR) $(KDIR)/root.grub/boot/grub $(KDIR)/grub2
+ 	$(CP) $(KDIR)/bzImage $(KDIR)/root.grub/boot/vmlinuz
+ 	grub-mkimage \
++		-d $(STAGING_DIR_HOST)/lib/grub/i386-pc \
+ 		-o $(KDIR)/grub2/eltorito.img \
+ 		-O i386-pc \
+ 		-c ./grub-early.cfg \

+ 57 - 0
patches/openwrt/0024-grub2-Add-sub-package-grub-editenv-for-target-installation.patch

@@ -0,0 +1,57 @@
+From: blogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>
+Date: Tue, 7 May 2013 12:35:07 +0000
+Subject: grub2: Add sub package grub-editenv for target installation
+
+grub-editenv allows to modify grub2 environment files. Add a new package
+that build grub2 for the target and packs up grub-editenv.
+
+Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
+
+diff --git a/package/grub2/Makefile b/package/grub2/Makefile
+index b606f54..dd490ff 100644
+--- a/package/grub2/Makefile
++++ b/package/grub2/Makefile
+@@ -16,7 +16,6 @@ PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+ PKG_SOURCE_URL:=@GNU/grub
+ PKG_MD5SUM:=e927540b6eda8b024fb0391eeaa4091c
+ 
+-PKG_HOST_ONLY:=1
+ HOST_BUILD_PARALLEL:=1
+ PKG_BUILD_DEPENDS:=grub2/host
+ 
+@@ -32,6 +31,23 @@ define Package/grub2
+   DEPENDS:=@TARGET_x86
+ endef
+ 
++define Package/grub2-editenv
++  CATEGORY:=Utilities
++  SECTION:=utils
++  TITLE:=Grub2 Environment editor
++  URL:=http://www.gnu.org/software/grub/
++  DEPENDS:=@TARGET_x86
++endef
++
++define Package/grub2-editenv/description
++	Edit grub2 environment files.
++endef
++
++CONFIGURE_ARGS += \
++	--target=$(REAL_GNU_TARGET_NAME) \
++	--disable-werror \
++	--disable-nls
++
+ HOST_CONFIGURE_ARGS += \
+ 	--target=$(REAL_GNU_TARGET_NAME) \
+ 	--sbindir="$(STAGING_DIR_HOST)/bin" \
+@@ -47,5 +63,11 @@ define Host/Configure
+ 	$(Host/Configure/Default)
+ endef
+ 
++define Package/grub2-editenv/install
++	$(INSTALL_DIR) $(1)/usr/sbin
++	$(INSTALL_BIN) $(PKG_BUILD_DIR)/grub-editenv $(1)/usr/sbin/
++endef
++
+ $(eval $(call HostBuild))
+ $(eval $(call BuildPackage,grub2))
++$(eval $(call BuildPackage,grub2-editenv))

+ 37 - 0
patches/openwrt/0025-x86-Fix-CONFIG_X86_GRUB_SERIAL.patch

@@ -0,0 +1,37 @@
+From: nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
+Date: Sat, 10 Aug 2013 18:35:29 +0000
+Subject: x86: Fix CONFIG_X86_GRUB_SERIAL=""
+
+With
+
+    .config:CONFIG_X86_GRUB_SERIAL=""
+
+which (AFAICT) is the way to tell GRUB not to use a serial console, in
+
+    target/linux/x86/image/Makefile:ifneq ($(CONFIG_X86_GRUB_SERIAL),)
+
+$(CONFIG_X86_GRUB_SERIAL) expands to `""' (a literal double double-quote),
+making the condition unconditionally false.
+
+This patch fixes the situation by passing CONFIG_X86_GRUB_SERIAL through
+qstrip before testing.
+
+Signed-off-by: Tamas TEVESZ <ice@extreme.hu>
+
+diff --git a/target/linux/x86/image/Makefile b/target/linux/x86/image/Makefile
+index 6e2bd54..2e73519 100644
+--- a/target/linux/x86/image/Makefile
++++ b/target/linux/x86/image/Makefile
+@@ -27,8 +27,10 @@ ifneq ($(strip $(foreach subtarget,$(USE_ATKBD),$(CONFIG_TARGET_x86_$(subtarget)
+   GRUB2_MODULES += at_keyboard
+ endif
+ 
+-ifneq ($(CONFIG_X86_GRUB_SERIAL),)
+-  GRUB_CONSOLE_CMDLINE += console=$(call qstrip,$(CONFIG_X86_GRUB_SERIAL)),$(CONFIG_X86_GRUB_BAUDRATE)n8
++GRUB_SERIAL:=$(call qstrip,$(CONFIG_X86_GRUB_SERIAL))
++
++ifneq ($(GRUB_SERIAL),)
++  GRUB_CONSOLE_CMDLINE += console=$(GRUB_SERIAL),$(CONFIG_X86_GRUB_BAUDRATE)n8
+   GRUB_SERIAL_CONFIG := serial --unit=0 --speed=$(CONFIG_X86_GRUB_BAUDRATE) --word=8 --parity=no --stop=1
+   GRUB_TERMINALS += serial
+ endif

+ 218 - 0
patches/openwrt/0026-grub2-update-to-2.02-beta2-fixes-mac-os-x-10.9-support-and-many-other-things.patch

@@ -0,0 +1,218 @@
+From: nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
+Date: Wed, 12 Mar 2014 11:21:16 +0000
+Subject: grub2: update to 2.02-beta2, fixes mac os x 10.9 support (and many other things)
+
+Signed-off-by: Felix Fietkau <nbd@openwrt.org>
+
+diff --git a/package/grub2/Makefile b/package/grub2/Makefile
+index dd490ff..4edd92b 100644
+--- a/package/grub2/Makefile
++++ b/package/grub2/Makefile
+@@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk
+ include $(INCLUDE_DIR)/kernel.mk
+ 
+ PKG_NAME:=grub
+-PKG_VERSION:=2.00
++PKG_VERSION:=2.02~beta2
+ PKG_RELEASE:=1
+ 
+-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+-PKG_SOURCE_URL:=@GNU/grub
+-PKG_MD5SUM:=e927540b6eda8b024fb0391eeaa4091c
++PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
++PKG_SOURCE_URL:=http://alpha.gnu.org/gnu/grub
++PKG_MD5SUM:=be62932eade308a364ea4bbc91295930
+ 
+ HOST_BUILD_PARALLEL:=1
+ PKG_BUILD_DEPENDS:=grub2/host
+diff --git a/package/grub2/patches/100-grub_setup_root.patch b/package/grub2/patches/100-grub_setup_root.patch
+index 7775b2a..9619c41 100644
+--- a/package/grub2/patches/100-grub_setup_root.patch
++++ b/package/grub2/patches/100-grub_setup_root.patch
+@@ -1,41 +1,6 @@
+ --- a/util/grub-setup.c
+ +++ b/util/grub-setup.c
+-@@ -141,12 +141,11 @@ write_rootdev (char *core_img, grub_devi
+- static void
+- setup (const char *dir,
+-        const char *boot_file, const char *core_file,
+--       const char *dest, int force,
+-+       const char *root, const char *dest, int force,
+-        int fs_probe, int allow_floppy)
+- {
+-   char *boot_path, *core_path, *core_path_dev, *core_path_dev_full;
+-   char *boot_img, *core_img;
+--  char *root = 0;
+-   size_t boot_size, core_size;
+-   grub_uint16_t core_sectors;
+-   grub_device_t root_dev = 0, dest_dev, core_dev;
+-@@ -253,7 +252,10 @@ setup (const char *dir,
+- 
+-   core_dev = dest_dev;
+- 
+--  {
+-+  if (root)
+-+    root_dev = grub_device_open(root);
+-+
+-+  if (!root_dev) {
+-     char **root_devices = grub_guess_root_devices (dir);
+-     char **cur;
+-     int found = 0;
+-@@ -263,6 +265,8 @@ setup (const char *dir,
+- 	char *drive;
+- 	grub_device_t try_dev;
+- 
+-+	if (root_dev)
+-+	  break;
+- 	drive = grub_util_get_grub_dev (*cur);
+- 	if (!drive)
+- 	  continue;
+-@@ -956,6 +960,8 @@ static struct argp_option options[] = {
++@@ -87,6 +87,8 @@ static struct argp_option options[] = {
+     N_("install even if problems are detected"), 0},
+    {"skip-fs-probe",'s',0,      0,
+     N_("do not probe for filesystems in DEVICE"), 0},
+@@ -44,7 +9,7 @@
+    {"verbose",     'v', 0,      0, N_("print verbose messages."), 0},
+    {"allow-floppy", 'a', 0,      0,
+     /* TRANSLATORS: The potential breakage isn't limited to floppies but it's
+-@@ -993,6 +999,7 @@ struct arguments
++@@ -130,6 +132,7 @@ struct arguments
+    char *core_file;
+    char *dir;
+    char *dev_map;
+@@ -52,7 +17,7 @@
+    int  force;
+    int  fs_probe;
+    int allow_floppy;
+-@@ -1040,6 +1047,13 @@ argp_parser (int key, char *arg, struct 
++@@ -178,6 +181,13 @@ argp_parser (int key, char *arg, struct 
+          arguments->dev_map = xstrdup (arg);
+          break;
+  
+@@ -66,12 +31,88 @@
+        case 'f':
+          arguments->force = 1;
+          break;
+-@@ -1172,7 +1186,7 @@ main (int argc, char *argv[])
+-   setup (arguments.dir ? : DEFAULT_DIRECTORY,
+- 	 arguments.boot_file ? : DEFAULT_BOOT_FILE,
+- 	 arguments.core_file ? : DEFAULT_CORE_FILE,
+--	 dest_dev, arguments.force,
+-+	 arguments.root_dev, dest_dev, arguments.force,
+- 	 arguments.fs_probe, arguments.allow_floppy);
++@@ -313,7 +323,7 @@ main (int argc, char *argv[])
++   GRUB_SETUP_FUNC (arguments.dir ? : DEFAULT_DIRECTORY,
++ 		   arguments.boot_file ? : DEFAULT_BOOT_FILE,
++ 		   arguments.core_file ? : DEFAULT_CORE_FILE,
++-		   dest_dev, arguments.force,
+++		   arguments.root_dev, dest_dev, arguments.force,
++ 		   arguments.fs_probe, arguments.allow_floppy,
++ 		   arguments.add_rs_codes);
++ 
++--- a/util/setup.c
+++++ b/util/setup.c
++@@ -247,13 +247,12 @@ identify_partmap (grub_disk_t disk __att
++ void
++ SETUP (const char *dir,
++        const char *boot_file, const char *core_file,
++-       const char *dest, int force,
+++       const char *root, const char *dest, int force,
++        int fs_probe, int allow_floppy,
++        int add_rs_codes __attribute__ ((unused))) /* unused on sparc64 */
++ {
++   char *core_path;
++   char *boot_img, *core_img, *boot_path;
++-  char *root = 0;
++   size_t boot_size, core_size;
++ #ifdef GRUB_SETUP_BIOS
++   grub_uint16_t core_sectors;
++@@ -307,7 +306,10 @@ SETUP (const char *dir,
++ 
++   core_dev = dest_dev;
++ 
++-  {
+++  if (root)
+++    root_dev = grub_device_open(root);
+++
+++  if (!root_dev) {
++     char **root_devices = grub_guess_root_devices (dir);
++     char **cur;
++     int found = 0;
++@@ -317,6 +319,8 @@ SETUP (const char *dir,
++ 	char *drive;
++ 	grub_device_t try_dev;
++ 
+++	if (root_dev)
+++	  break;
++ 	drive = grub_util_get_grub_dev (*cur);
++ 	if (!drive)
++ 	  continue;
++--- a/include/grub/util/install.h
+++++ b/include/grub/util/install.h
++@@ -182,13 +182,13 @@ grub_install_get_image_target (const cha
++ void
++ grub_util_bios_setup (const char *dir,
++ 		      const char *boot_file, const char *core_file,
++-		      const char *dest, int force,
+++		      const char *root, const char *dest, int force,
++ 		      int fs_probe, int allow_floppy,
++ 		      int add_rs_codes);
++ void
++ grub_util_sparc_setup (const char *dir,
++ 		       const char *boot_file, const char *core_file,
++-		       const char *dest, int force,
+++		       const char *root, const char *dest, int force,
++ 		       int fs_probe, int allow_floppy,
++ 		       int add_rs_codes);
+  
+-   /* Free resources.  */
++--- a/util/grub-install.c
+++++ b/util/grub-install.c
++@@ -1660,7 +1660,7 @@ main (int argc, char *argv[])
++ 	/*  Now perform the installation.  */
++ 	if (install_bootsector)
++ 	  grub_util_bios_setup (platdir, "boot.img", "core.img",
++-				install_drive, force,
+++				NULL, install_drive, force,
++ 				fs_probe, allow_floppy, add_rs_codes);
++ 	break;
++       }
++@@ -1686,7 +1686,7 @@ main (int argc, char *argv[])
++ 	/*  Now perform the installation.  */
++ 	if (install_bootsector)
++ 	  grub_util_sparc_setup (platdir, "boot.img", "core.img",
++-				 install_device, force,
+++				 NULL, install_device, force,
++ 				 fs_probe, allow_floppy,
++ 				 0 /* unused */ );
++ 	break;
+diff --git a/package/grub2/patches/200-fix-gets-removal.patch b/package/grub2/patches/200-fix-gets-removal.patch
+index 4370fb5..737fb97 100644
+--- a/package/grub2/patches/200-fix-gets-removal.patch
++++ b/package/grub2/patches/200-fix-gets-removal.patch
+@@ -1,15 +1,16 @@
+ --- a/grub-core/gnulib/stdio.in.h
+ +++ b/grub-core/gnulib/stdio.in.h
+-@@ -137,12 +137,6 @@
+-                  "use gnulib module fflush for portable POSIX compliance");
++@@ -695,13 +695,6 @@ _GL_WARN_ON_USE (getline, "getline is un
++ # endif
+  #endif
+  
+ -/* It is very rare that the developer ever has full control of stdin,
+--   so any use of gets warrants an unconditional warning.  Assume it is
+--   always declared, since it is required by C89.  */
++-   so any use of gets warrants an unconditional warning; besides, C11
++-   removed it.  */
+ -#undef gets
+--_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
++-#if HAVE_RAW_DECL_GETS
++-#endif
+ -
+- #if @GNULIB_FOPEN@
+- # if @REPLACE_FOPEN@
+- #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
++ 
++ #if @GNULIB_OBSTACK_PRINTF@ || @GNULIB_OBSTACK_PRINTF_POSIX@
++ struct obstack;

+ 20 - 0
patches/openwrt/0027-grub2-disable-libdevmapper-fix-build-when-it-s-available.patch

@@ -0,0 +1,20 @@
+From: nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
+Date: Sun, 30 Mar 2014 19:55:39 +0000
+Subject: grub2: disable libdevmapper - fix build when it's available
+
+Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
+
+diff --git a/package/grub2/Makefile b/package/grub2/Makefile
+index 4edd92b..ed86fff 100644
+--- a/package/grub2/Makefile
++++ b/package/grub2/Makefile
+@@ -46,7 +46,8 @@ endef
+ CONFIGURE_ARGS += \
+ 	--target=$(REAL_GNU_TARGET_NAME) \
+ 	--disable-werror \
+-	--disable-nls
++	--disable-nls \
++	--disable-device-mapper
+ 
+ HOST_CONFIGURE_ARGS += \
+ 	--target=$(REAL_GNU_TARGET_NAME) \

+ 20 - 0
patches/openwrt/0028-grub2-disable-mkfont-fix-build-on-Archlinux.patch

@@ -0,0 +1,20 @@
+From: nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
+Date: Sun, 30 Mar 2014 19:55:43 +0000
+Subject: grub2: disable mkfont - fix build on Archlinux
+
+Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
+
+diff --git a/package/grub2/Makefile b/package/grub2/Makefile
+index ed86fff..509fb60 100644
+--- a/package/grub2/Makefile
++++ b/package/grub2/Makefile
+@@ -47,7 +47,8 @@ CONFIGURE_ARGS += \
+ 	--target=$(REAL_GNU_TARGET_NAME) \
+ 	--disable-werror \
+ 	--disable-nls \
+-	--disable-device-mapper
++	--disable-device-mapper \
++	--disable-grub-mkfont
+ 
+ HOST_CONFIGURE_ARGS += \
+ 	--target=$(REAL_GNU_TARGET_NAME) \