* configure.ac: Probe for linking format rather than guessing it based
on target_os.
This commit is contained in:
parent
c7995256e4
commit
a9f25a0819
7 changed files with 93 additions and 109 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2013-11-14 Vladimir Serbinenko <phcoder@gmail.com>
|
||||||
|
|
||||||
|
* configure.ac: Probe for linking format rather than guessing it based
|
||||||
|
on target_os.
|
||||||
|
|
||||||
2013-11-14 Vladimir Serbinenko <phcoder@gmail.com>
|
2013-11-14 Vladimir Serbinenko <phcoder@gmail.com>
|
||||||
|
|
||||||
* grub-core/disk/xen/xendisk.c (grub_xendisk_fini): Set state to
|
* grub-core/disk/xen/xendisk.c (grub_xendisk_fini): Set state to
|
||||||
|
|
|
@ -250,7 +250,7 @@ program = {
|
||||||
name = grub-macho2img;
|
name = grub-macho2img;
|
||||||
mansection = 1;
|
mansection = 1;
|
||||||
common = util/grub-macho2img.c;
|
common = util/grub-macho2img.c;
|
||||||
condition = COND_APPLE_CC;
|
condition = COND_APPLE_LINKER;
|
||||||
};
|
};
|
||||||
|
|
||||||
program = {
|
program = {
|
||||||
|
|
16
acinclude.m4
16
acinclude.m4
|
@ -247,22 +247,6 @@ rm -f conftest*])
|
||||||
|
|
||||||
AC_MSG_RESULT([$grub_cv_i386_asm_addr32])])
|
AC_MSG_RESULT([$grub_cv_i386_asm_addr32])])
|
||||||
|
|
||||||
dnl check if our target compiler is apple cc
|
|
||||||
dnl because it requires numerous workarounds
|
|
||||||
AC_DEFUN([grub_apple_target_cc],
|
|
||||||
[AC_REQUIRE([AC_PROG_CC])
|
|
||||||
AC_MSG_CHECKING([whether our target compiler is apple cc])
|
|
||||||
AC_CACHE_VAL(grub_cv_apple_target_cc,
|
|
||||||
[if $CC -v 2>&1 | grep "Apple Inc." > /dev/null; then
|
|
||||||
grub_cv_apple_target_cc=yes
|
|
||||||
else
|
|
||||||
grub_cv_apple_target_cc=no
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_MSG_RESULT([$grub_cv_apple_target_cc])])
|
|
||||||
|
|
||||||
|
|
||||||
dnl Later versions of GAS requires that addr32 and data32 prefixes
|
dnl Later versions of GAS requires that addr32 and data32 prefixes
|
||||||
dnl appear in the same lines as the instructions they modify, while
|
dnl appear in the same lines as the instructions they modify, while
|
||||||
dnl earlier versions requires that they appear in separate lines.
|
dnl earlier versions requires that they appear in separate lines.
|
||||||
|
|
161
configure.ac
161
configure.ac
|
@ -597,52 +597,14 @@ if test "x$grub_cv_cc_fno_asynchronous_unwind_tables" = xyes; then
|
||||||
TARGET_CFLAGS="$TARGET_CFLAGS -fno-asynchronous-unwind-tables"
|
TARGET_CFLAGS="$TARGET_CFLAGS -fno-asynchronous-unwind-tables"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
grub_apple_target_cc
|
|
||||||
if test x$grub_cv_apple_target_cc = xyes ; then
|
|
||||||
TARGET_APPLE_CC=1
|
|
||||||
AC_CHECK_PROG([TARGET_OBJCONV], [objconv], [objconv], [])
|
|
||||||
if test "x$TARGET_OBJCONV" = x ; then
|
|
||||||
AC_CHECK_PROG([TARGET_OBJCONV], [objconv], [./objconv], [], [.])
|
|
||||||
fi
|
|
||||||
if test "x$TARGET_OBJCONV" = x ; then
|
|
||||||
AC_MSG_ERROR([objconv not found which is required when building with apple compiler])
|
|
||||||
fi
|
|
||||||
TARGET_IMG_LDSCRIPT=
|
|
||||||
TARGET_IMG_CFLAGS="-static"
|
|
||||||
TARGET_IMG_LDFLAGS='-nostdlib -static -Wl,-preload -Wl,-segalign,20'
|
|
||||||
TARGET_IMG_LDFLAGS_AC='-nostdlib -static -Wl,-preload -Wl,-segalign,20'
|
|
||||||
TARGET_IMG_BASE_LDOPT="-Wl,-image_base"
|
|
||||||
TARGET_LDFLAGS_OLDMAGIC=""
|
|
||||||
else
|
|
||||||
TARGET_APPLE_CC=0
|
|
||||||
TARGET_LDFLAGS_OLDMAGIC="-Wl,-N"
|
|
||||||
# Use linker script if present, otherwise use builtin -N script.
|
|
||||||
if test -f "${srcdir}/${grub_coredir}/conf/${target_cpu}-${platform}-${target_os}-img-ld.sc"; then
|
|
||||||
TARGET_IMG_LDSCRIPT='$(top_srcdir)'"/${grub_coredir}/conf/${target_cpu}-${platform}-${target_os}-img-ld.sc"
|
|
||||||
TARGET_IMG_LDFLAGS="-Wl,-T${TARGET_IMG_LDSCRIPT}"
|
|
||||||
TARGET_IMG_LDFLAGS_AC="-Wl,-T${srcdir}/${grub_coredir}/conf/${target_cpu}-${platform}-${target_os}-img-ld.sc"
|
|
||||||
TARGET_IMG_BASE_LDOPT="-Wl,-Ttext"
|
|
||||||
else
|
|
||||||
TARGET_IMG_LDSCRIPT=
|
|
||||||
TARGET_IMG_LDFLAGS='-Wl,-N'
|
|
||||||
TARGET_IMG_LDFLAGS_AC='-Wl,-N'
|
|
||||||
TARGET_IMG_BASE_LDOPT="-Wl,-Ttext"
|
|
||||||
fi
|
|
||||||
TARGET_IMG_CFLAGS=
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_SUBST(TARGET_LDFLAGS_OLDMAGIC)
|
|
||||||
|
|
||||||
# For platforms where ELF is not the default link format.
|
# For platforms where ELF is not the default link format.
|
||||||
AC_MSG_CHECKING([for command to convert module to ELF format])
|
|
||||||
case "${target_os}" in
|
case "${target_os}" in
|
||||||
cygwin) TARGET_OBJ2ELF='./build-grub-pe2elf';
|
cygwin)
|
||||||
# FIXME: put proper test here
|
# FIXME: put proper test here
|
||||||
NEED_REGISTER_FRAME_INFO=1
|
NEED_REGISTER_FRAME_INFO=1
|
||||||
;;
|
;;
|
||||||
*) NEED_REGISTER_FRAME_INFO=0 ;;
|
*) NEED_REGISTER_FRAME_INFO=0 ;;
|
||||||
esac
|
esac
|
||||||
AC_MSG_RESULT([$TARGET_OBJ2ELF])
|
|
||||||
|
|
||||||
|
|
||||||
AC_ARG_ENABLE([efiemu],
|
AC_ARG_ENABLE([efiemu],
|
||||||
|
@ -681,42 +643,75 @@ enable_efiemu=no
|
||||||
fi
|
fi
|
||||||
AC_SUBST([enable_efiemu])
|
AC_SUBST([enable_efiemu])
|
||||||
|
|
||||||
case "$target_os" in
|
CFLAGS="$TARGET_CFLAGS"
|
||||||
cygwin)
|
|
||||||
;;
|
if test x"$target_cpu" = xi386 || test x"$target_cpu" = xx86_64; then
|
||||||
freebsd | kfreebsd*-gnu)
|
AC_CACHE_CHECK([for linking format], [grub_cv_target_cc_link_format], [
|
||||||
if test x"$target_cpu" = xi386; then
|
grub_cv_target_cc_link_format=unknown
|
||||||
TARGET_LDFLAGS="$TARGET_LDFLAGS -Wl,-melf_i386_fbsd"
|
for format in -melf_${target_cpu} -melf_${target_cpu}_fbsd -melf_${target_cpu}_obsd -melf_${target_cpu}_haiku -m${target_cpu}pe -arch,${target_cpu}; do
|
||||||
fi
|
if test x${target_cpu} != xi386 && test x$format = x${target_cpu}pe; then
|
||||||
if test x"$target_cpu" = xx86_64; then
|
continue
|
||||||
TARGET_LDFLAGS="$TARGET_LDFLAGS -Wl,-melf_x86_64_fbsd"
|
fi
|
||||||
fi
|
CFLAGS="$TARGET_CFLAGS -static"
|
||||||
;;
|
LDFLAGS="$TARGET_LDFLAGS -Wl,$format -nostdlib"
|
||||||
openbsd*)
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||||
if test x"$target_cpu" = xi386; then
|
asm (".globl start; start:");
|
||||||
TARGET_LDFLAGS="$TARGET_LDFLAGS -Wl,-melf_i386_obsd"
|
asm (".globl _start; _start:");
|
||||||
fi
|
asm (".globl __start; __start:");
|
||||||
if test x"$target_cpu" = xx86_64; then
|
void __main (void);
|
||||||
TARGET_LDFLAGS="$TARGET_LDFLAGS -Wl,-melf_x86_64_obsd"
|
void __main (void) {}
|
||||||
fi
|
]], [[]])], [flag=1], [])
|
||||||
;;
|
if test x"$flag" = x1; then
|
||||||
haiku*)
|
grub_cv_target_cc_link_format="$format"
|
||||||
if test x"$target_cpu" = xi386; then
|
break;
|
||||||
TARGET_LDFLAGS="$TARGET_LDFLAGS -Wl,-melf_i386_haiku"
|
fi
|
||||||
fi
|
done])
|
||||||
if test x"$target_cpu" = xx86_64; then
|
if test x"$grub_cv_target_cc_link_format" = xunknown; then
|
||||||
TARGET_LDFLAGS="$TARGET_LDFLAGS -Wl,-melf_x86_64_haiku"
|
AC_MSG_ERROR([no suitable link format found])
|
||||||
fi
|
fi
|
||||||
;;
|
TARGET_LDFLAGS="$TARGET_LDFLAGS -Wl,$grub_cv_target_cc_link_format"
|
||||||
*)
|
if test x"$grub_cv_target_cc_link_format" = x-mi386pe; then
|
||||||
if test x"$target_cpu" = xi386; then
|
TARGET_OBJ2ELF='./build-grub-pe2elf';
|
||||||
TARGET_LDFLAGS="$TARGET_LDFLAGS -Wl,-melf_i386"
|
fi
|
||||||
fi
|
fi
|
||||||
if test x"$target_cpu" = xx86_64; then
|
|
||||||
TARGET_LDFLAGS="$TARGET_LDFLAGS -Wl,-melf_x86_64"
|
if test x$grub_cv_target_cc_link_format = x-arch,i386 || test x$grub_cv_target_cc_link_format = x-arch,x86_64; then
|
||||||
fi
|
TARGET_APPLE_LINKER=1
|
||||||
;;
|
AC_CHECK_PROG([TARGET_OBJCONV], [objconv], [objconv], [])
|
||||||
esac
|
if test "x$TARGET_OBJCONV" = x ; then
|
||||||
|
AC_CHECK_PROG([TARGET_OBJCONV], [objconv], [./objconv], [], [.])
|
||||||
|
fi
|
||||||
|
if test "x$TARGET_OBJCONV" = x ; then
|
||||||
|
AC_MSG_ERROR([objconv not found which is required when building with apple compiler])
|
||||||
|
fi
|
||||||
|
TARGET_IMG_LDSCRIPT=
|
||||||
|
TARGET_IMG_CFLAGS="-static"
|
||||||
|
TARGET_IMG_LDFLAGS='-nostdlib -static -Wl,-preload -Wl,-segalign,20'
|
||||||
|
TARGET_IMG_LDFLAGS_AC='-nostdlib -static -Wl,-preload -Wl,-segalign,20'
|
||||||
|
TARGET_IMG_BASE_LDOPT="-Wl,-image_base"
|
||||||
|
TARGET_LDFLAGS_OLDMAGIC=""
|
||||||
|
elif test x$grub_cv_target_cc_link_format = x-mi386pe && test x$platform = xpc; then
|
||||||
|
TARGET_APPLE_LINKER=0
|
||||||
|
TARGET_LDFLAGS_OLDMAGIC="-Wl,-N"
|
||||||
|
TARGET_IMG_LDSCRIPT='$(top_srcdir)'"/${grub_coredir}/conf/i386-pc-cygwin-img-ld.sc"
|
||||||
|
TARGET_IMG_LDFLAGS="-Wl,-T${TARGET_IMG_LDSCRIPT}"
|
||||||
|
TARGET_IMG_LDFLAGS_AC="-Wl,-T${srcdir}/${grub_coredir}/conf/i386-pc-cygwin-img-ld.sc"
|
||||||
|
TARGET_IMG_BASE_LDOPT="-Wl,-Ttext"
|
||||||
|
TARGET_IMG_CFLAGS=
|
||||||
|
else
|
||||||
|
TARGET_APPLE_LINKER=0
|
||||||
|
TARGET_LDFLAGS_OLDMAGIC="-Wl,-N"
|
||||||
|
TARGET_IMG_LDSCRIPT=
|
||||||
|
TARGET_IMG_LDFLAGS='-Wl,-N'
|
||||||
|
TARGET_IMG_LDFLAGS_AC='-Wl,-N'
|
||||||
|
TARGET_IMG_BASE_LDOPT="-Wl,-Ttext"
|
||||||
|
TARGET_IMG_CFLAGS=
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_SUBST(TARGET_LDFLAGS_OLDMAGIC)
|
||||||
|
|
||||||
|
|
||||||
|
LDFLAGS="$TARGET_LDFLAGS"
|
||||||
|
|
||||||
if test "$target_cpu" = x86_64; then
|
if test "$target_cpu" = x86_64; then
|
||||||
# Use large model to support 4G memory
|
# Use large model to support 4G memory
|
||||||
|
@ -803,7 +798,7 @@ fi
|
||||||
|
|
||||||
# Set them to their new values for the tests below.
|
# Set them to their new values for the tests below.
|
||||||
CC="$TARGET_CC"
|
CC="$TARGET_CC"
|
||||||
if test "x$TARGET_APPLE_CC" = x1 ; then
|
if test "x$TARGET_APPLE_LINKER" = x1 ; then
|
||||||
CFLAGS="$TARGET_CFLAGS -nostdlib -Wno-error"
|
CFLAGS="$TARGET_CFLAGS -nostdlib -Wno-error"
|
||||||
else
|
else
|
||||||
CFLAGS="$TARGET_CFLAGS -nostdlib -Wl,--defsym,___main=0x8100 -Wno-error"
|
CFLAGS="$TARGET_CFLAGS -nostdlib -Wl,--defsym,___main=0x8100 -Wno-error"
|
||||||
|
@ -818,16 +813,18 @@ fi
|
||||||
LIBS="$TARGET_LIBGCC"
|
LIBS="$TARGET_LIBGCC"
|
||||||
|
|
||||||
grub_ASM_USCORE
|
grub_ASM_USCORE
|
||||||
|
if test "x$TARGET_APPLE_LINKER" = x0 ; then
|
||||||
if test x$grub_cv_asm_uscore = xyes; then
|
if test x$grub_cv_asm_uscore = xyes; then
|
||||||
CFLAGS="$TARGET_CFLAGS -Wl,--defsym,_abort=_main"
|
CFLAGS="$TARGET_CFLAGS -Wl,--defsym,_abort=_main"
|
||||||
else
|
else
|
||||||
CFLAGS="$TARGET_CFLAGS -Wl,--defsym,abort=main"
|
CFLAGS="$TARGET_CFLAGS -Wl,--defsym,abort=main"
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# Check for libgcc symbols
|
# Check for libgcc symbols
|
||||||
AC_CHECK_FUNCS(__bswapsi2 __bswapdi2 __ashldi3 __ashrdi3 __lshrdi3 __ucmpdi2 _restgpr_14_x __ctzdi2 __ctzsi2)
|
AC_CHECK_FUNCS(__bswapsi2 __bswapdi2 __ashldi3 __ashrdi3 __lshrdi3 __ucmpdi2 _restgpr_14_x __ctzdi2 __ctzsi2)
|
||||||
|
|
||||||
if test "x$TARGET_APPLE_CC" = x1 ; then
|
if test "x$TARGET_APPLE_LINKER" = x1 ; then
|
||||||
CFLAGS="$TARGET_CFLAGS -nostdlib"
|
CFLAGS="$TARGET_CFLAGS -nostdlib"
|
||||||
else
|
else
|
||||||
CFLAGS="$TARGET_CFLAGS -nostdlib -Wl,--defsym,___main=0x8100"
|
CFLAGS="$TARGET_CFLAGS -nostdlib -Wl,--defsym,___main=0x8100"
|
||||||
|
@ -836,12 +833,12 @@ LIBS=""
|
||||||
|
|
||||||
# Defined in aclocal.m4.
|
# Defined in aclocal.m4.
|
||||||
grub_PROG_TARGET_CC
|
grub_PROG_TARGET_CC
|
||||||
if test "x$TARGET_APPLE_CC" != x1 ; then
|
if test "x$TARGET_APPLE_LINKER" != x1 ; then
|
||||||
grub_PROG_OBJCOPY_ABSOLUTE
|
grub_PROG_OBJCOPY_ABSOLUTE
|
||||||
fi
|
fi
|
||||||
grub_PROG_LD_BUILD_ID_NONE
|
grub_PROG_LD_BUILD_ID_NONE
|
||||||
if test "x$target_cpu" = xi386; then
|
if test "x$target_cpu" = xi386; then
|
||||||
if test "$platform" != emu && test "x$TARGET_APPLE_CC" != x1 ; then
|
if test "$platform" != emu && test "x$TARGET_APPLE_LINKER" != x1 ; then
|
||||||
if test ! -z "$TARGET_IMG_LDSCRIPT"; then
|
if test ! -z "$TARGET_IMG_LDSCRIPT"; then
|
||||||
# Check symbols provided by linker script.
|
# Check symbols provided by linker script.
|
||||||
CFLAGS="$TARGET_CFLAGS -nostdlib ${TARGET_IMG_LDFLAGS_AC} ${TARGET_IMG_BASE_LDOPT},0x8000 -Wl,--defsym,___main=0x8100"
|
CFLAGS="$TARGET_CFLAGS -nostdlib ${TARGET_IMG_LDFLAGS_AC} ${TARGET_IMG_BASE_LDOPT},0x8000 -Wl,--defsym,___main=0x8100"
|
||||||
|
@ -1349,8 +1346,6 @@ LIBS=""
|
||||||
AC_SUBST([FONT_SOURCE])
|
AC_SUBST([FONT_SOURCE])
|
||||||
AS_IF([test x$target_cpu = xi386 -a x$platform = xqemu],
|
AS_IF([test x$target_cpu = xi386 -a x$platform = xqemu],
|
||||||
[AC_SUBST([GRUB_BOOT_MACHINE_LINK_ADDR], 0xffe00)])
|
[AC_SUBST([GRUB_BOOT_MACHINE_LINK_ADDR], 0xffe00)])
|
||||||
AS_IF([test x$TARGET_APPLE_CC = x1],
|
|
||||||
[AC_SUBST([USE_APPLE_CC_FIXES], yes)])
|
|
||||||
|
|
||||||
AC_SUBST(HAVE_ASM_USCORE)
|
AC_SUBST(HAVE_ASM_USCORE)
|
||||||
AC_SUBST(ADDR32)
|
AC_SUBST(ADDR32)
|
||||||
|
@ -1390,7 +1385,6 @@ AC_SUBST(TARGET_LDFLAGS_STATIC_LIBGCC)
|
||||||
AC_SUBST(TARGET_CPP)
|
AC_SUBST(TARGET_CPP)
|
||||||
AC_SUBST(TARGET_CCAS)
|
AC_SUBST(TARGET_CCAS)
|
||||||
AC_SUBST(TARGET_OBJ2ELF)
|
AC_SUBST(TARGET_OBJ2ELF)
|
||||||
AC_SUBST(TARGET_APPLE_CC)
|
|
||||||
AC_SUBST(TARGET_MODULE_FORMAT)
|
AC_SUBST(TARGET_MODULE_FORMAT)
|
||||||
|
|
||||||
AC_SUBST(TARGET_CFLAGS)
|
AC_SUBST(TARGET_CFLAGS)
|
||||||
|
@ -1402,6 +1396,7 @@ AC_SUBST(TARGET_IMG_LDSCRIPT)
|
||||||
AC_SUBST(TARGET_IMG_LDFLAGS)
|
AC_SUBST(TARGET_IMG_LDFLAGS)
|
||||||
AC_SUBST(TARGET_IMG_CFLAGS)
|
AC_SUBST(TARGET_IMG_CFLAGS)
|
||||||
AC_SUBST(TARGET_IMG_BASE_LDOPT)
|
AC_SUBST(TARGET_IMG_BASE_LDOPT)
|
||||||
|
AC_SUBST(TARGET_APPLE_LINKER)
|
||||||
|
|
||||||
AC_SUBST(HOST_CFLAGS)
|
AC_SUBST(HOST_CFLAGS)
|
||||||
AC_SUBST(HOST_LDFLAGS)
|
AC_SUBST(HOST_LDFLAGS)
|
||||||
|
@ -1453,7 +1448,7 @@ AM_CONDITIONAL([COND_GRUB_EMU_PCI], [test x$enable_grub_emu_pci = xyes])
|
||||||
AM_CONDITIONAL([COND_GRUB_MKFONT], [test x$enable_grub_mkfont = xyes])
|
AM_CONDITIONAL([COND_GRUB_MKFONT], [test x$enable_grub_mkfont = xyes])
|
||||||
AM_CONDITIONAL([COND_GRUB_MOUNT], [test x$enable_grub_mount = xyes])
|
AM_CONDITIONAL([COND_GRUB_MOUNT], [test x$enable_grub_mount = xyes])
|
||||||
AM_CONDITIONAL([COND_HAVE_FONT_SOURCE], [test x$FONT_SOURCE != x])
|
AM_CONDITIONAL([COND_HAVE_FONT_SOURCE], [test x$FONT_SOURCE != x])
|
||||||
AM_CONDITIONAL([COND_APPLE_CC], [test x$TARGET_APPLE_CC = x1])
|
AM_CONDITIONAL([COND_APPLE_LINKER], [test x$TARGET_APPLE_LINKER = x1])
|
||||||
AM_CONDITIONAL([COND_ENABLE_EFIEMU], [test x$enable_efiemu = xyes])
|
AM_CONDITIONAL([COND_ENABLE_EFIEMU], [test x$enable_efiemu = xyes])
|
||||||
AM_CONDITIONAL([COND_ENABLE_CACHE_STATS], [test x$DISK_CACHE_STATS = x1])
|
AM_CONDITIONAL([COND_ENABLE_CACHE_STATS], [test x$DISK_CACHE_STATS = x1])
|
||||||
AM_CONDITIONAL([COND_ENABLE_BOOT_TIME_STATS], [test x$BOOT_TIME_STATS = x1])
|
AM_CONDITIONAL([COND_ENABLE_BOOT_TIME_STATS], [test x$BOOT_TIME_STATS = x1])
|
||||||
|
|
|
@ -425,13 +425,13 @@ def kernel(platform):
|
||||||
r += gvar_add("CLEANFILES", "[+ name +].img")
|
r += gvar_add("CLEANFILES", "[+ name +].img")
|
||||||
r += rule("[+ name +].img", "[+ name +].exec$(EXEEXT)",
|
r += rule("[+ name +].img", "[+ name +].exec$(EXEEXT)",
|
||||||
if_platform_tagged(platform, "nostrip",
|
if_platform_tagged(platform, "nostrip",
|
||||||
"""if test x$(USE_APPLE_CC_FIXES) = xyes; then \
|
"""if test x$(TARGET_APPLE_LINKER) = x1; then \
|
||||||
$(TARGET_OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -ed2022 -wd1106 -nu -nd $< $@; \
|
$(TARGET_OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -ed2022 -wd1106 -nu -nd $< $@; \
|
||||||
elif test ! -z '$(TARGET_OBJ2ELF)'; then \
|
elif test ! -z '$(TARGET_OBJ2ELF)'; then \
|
||||||
cp $< $@.bin; $(TARGET_OBJ2ELF) $@.bin && cp $@.bin $@ || (rm -f $@.bin; exit 1); \
|
cp $< $@.bin; $(TARGET_OBJ2ELF) $@.bin && cp $@.bin $@ || (rm -f $@.bin; exit 1); \
|
||||||
else cp $< $@; fi""",
|
else cp $< $@; fi""",
|
||||||
"""if test x$(USE_APPLE_CC_FIXES) = xyes; then \
|
"""if test x$(TARGET_APPLE_LINKER) = x1; then \
|
||||||
$(TARGET_STRIP) $(""" + cname() + """) -o $@.bin $<; \
|
$(TARGET_STRIP) -S -x $(""" + cname() + """) -o $@.bin $<; \
|
||||||
$(TARGET_OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -ed2022 -wd1106 -nu -nd $@.bin $@; \
|
$(TARGET_OBJCONV) -f$(TARGET_MODULE_FORMAT) -nr:_grub_mod_init:grub_mod_init -nr:_grub_mod_fini:grub_mod_fini -ed2022 -wd1106 -nu -nd $@.bin $@; \
|
||||||
else """ + "$(TARGET_STRIP) $(" + cname() + "_STRIPFLAGS) -o $@ $<; \
|
else """ + "$(TARGET_STRIP) $(" + cname() + "_STRIPFLAGS) -o $@ $<; \
|
||||||
fi"""))
|
fi"""))
|
||||||
|
@ -457,7 +457,7 @@ def image(platform):
|
||||||
r += gvar_add("platform_DATA", "[+ name +].img")
|
r += gvar_add("platform_DATA", "[+ name +].img")
|
||||||
r += gvar_add("CLEANFILES", "[+ name +].img")
|
r += gvar_add("CLEANFILES", "[+ name +].img")
|
||||||
r += rule("[+ name +].img", "[+ name +].image$(EXEEXT)", """
|
r += rule("[+ name +].img", "[+ name +].image$(EXEEXT)", """
|
||||||
if test x$(USE_APPLE_CC_FIXES) = xyes; then \
|
if test x$(TARGET_APPLE_LINKER) = x1; then \
|
||||||
$(MACHO2IMG) $< $@; \
|
$(MACHO2IMG) $< $@; \
|
||||||
else \
|
else \
|
||||||
$(TARGET_OBJCOPY) $(""" + cname() + """_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .reginfo -R .rel.dyn -R .note.gnu.gold-version $< $@; \
|
$(TARGET_OBJCOPY) $(""" + cname() + """_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .reginfo -R .rel.dyn -R .note.gnu.gold-version $< $@; \
|
||||||
|
|
|
@ -389,7 +389,7 @@ CLEANFILES += $(MOD_FILES)
|
||||||
if COND_ENABLE_EFIEMU
|
if COND_ENABLE_EFIEMU
|
||||||
efiemu32.o: efiemu/runtime/efiemu.c $(TARGET_OBJ2ELF)
|
efiemu32.o: efiemu/runtime/efiemu.c $(TARGET_OBJ2ELF)
|
||||||
-rm -f $@; \
|
-rm -f $@; \
|
||||||
if test "x$(TARGET_APPLE_CC)" = x1; then \
|
if test "x$(TARGET_APPLE_LINKER)" = x1; then \
|
||||||
$(TARGET_CC) $(DEFS) $(INCLUDES) $(CPPFLAGS_EFIEMU) $(CPPFLAGS_DEFAULT) -m32 -Wall -Werror -nostdlib -O2 -c -o $@.bin $< || exit 1; \
|
$(TARGET_CC) $(DEFS) $(INCLUDES) $(CPPFLAGS_EFIEMU) $(CPPFLAGS_DEFAULT) -m32 -Wall -Werror -nostdlib -O2 -c -o $@.bin $< || exit 1; \
|
||||||
$(OBJCONV) -felf32 -nu -nd $@.bin $@ || exit 1; \
|
$(OBJCONV) -felf32 -nu -nd $@.bin $@ || exit 1; \
|
||||||
rm -f $@.bin; \
|
rm -f $@.bin; \
|
||||||
|
@ -399,7 +399,7 @@ efiemu32.o: efiemu/runtime/efiemu.c $(TARGET_OBJ2ELF)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
efiemu64_c.o: efiemu/runtime/efiemu.c
|
efiemu64_c.o: efiemu/runtime/efiemu.c
|
||||||
if test "x$(TARGET_APPLE_CC)" = x1; then \
|
if test "x$(TARGET_APPLE_LINKER)" = x1; then \
|
||||||
$(TARGET_CC) $(DEFS) $(INCLUDES) $(CPPFLAGS_EFIEMU) $(CPPFLAGS_DEFAULT) -m64 -nostdlib -Wall -Werror -mno-red-zone -c -o $@ $< || exit 1; \
|
$(TARGET_CC) $(DEFS) $(INCLUDES) $(CPPFLAGS_EFIEMU) $(CPPFLAGS_DEFAULT) -m64 -nostdlib -Wall -Werror -mno-red-zone -c -o $@ $< || exit 1; \
|
||||||
else \
|
else \
|
||||||
$(TARGET_CC) $(DEFS) $(INCLUDES) $(CPPFLAGS_EFIEMU) $(CPPFLAGS_DEFAULT) -m64 -nostdlib -Wall -Werror -O2 -mcmodel=large -mno-red-zone -c -o $@ $< || exit 1; \
|
$(TARGET_CC) $(DEFS) $(INCLUDES) $(CPPFLAGS_EFIEMU) $(CPPFLAGS_DEFAULT) -m64 -nostdlib -Wall -Werror -O2 -mcmodel=large -mno-red-zone -c -o $@ $< || exit 1; \
|
||||||
|
@ -407,7 +407,7 @@ efiemu64_c.o: efiemu/runtime/efiemu.c
|
||||||
|
|
||||||
efiemu64_s.o: efiemu/runtime/efiemu.S
|
efiemu64_s.o: efiemu/runtime/efiemu.S
|
||||||
-rm -f $@
|
-rm -f $@
|
||||||
if test "x$(TARGET_APPLE_CC)" = x1; then \
|
if test "x$(TARGET_APPLE_LINKER)" = x1; then \
|
||||||
$(TARGET_CC) $(DEFS) $(INCLUDES) $(CPPFLAGS_EFIEMU) $(CPPFLAGS_DEFAULT) -m64 -Wall -Werror -nostdlib -O2 -mno-red-zone -c -o $@ $< || exit 1; \
|
$(TARGET_CC) $(DEFS) $(INCLUDES) $(CPPFLAGS_EFIEMU) $(CPPFLAGS_DEFAULT) -m64 -Wall -Werror -nostdlib -O2 -mno-red-zone -c -o $@ $< || exit 1; \
|
||||||
else \
|
else \
|
||||||
$(TARGET_CC) $(DEFS) $(INCLUDES) $(CPPFLAGS_EFIEMU) $(CPPFLAGS_DEFAULT) -m64 -Wall -Werror -nostdlib -O2 -mcmodel=large -mno-red-zone -c -o $@ $< || exit 1; \
|
$(TARGET_CC) $(DEFS) $(INCLUDES) $(CPPFLAGS_EFIEMU) $(CPPFLAGS_DEFAULT) -m64 -Wall -Werror -nostdlib -O2 -mcmodel=large -mno-red-zone -c -o $@ $< || exit 1; \
|
||||||
|
@ -415,7 +415,7 @@ efiemu64_s.o: efiemu/runtime/efiemu.S
|
||||||
|
|
||||||
efiemu64.o: efiemu64_c.o efiemu64_s.o $(TARGET_OBJ2ELEF)
|
efiemu64.o: efiemu64_c.o efiemu64_s.o $(TARGET_OBJ2ELEF)
|
||||||
-rm -f $@; \
|
-rm -f $@; \
|
||||||
if test "x$(TARGET_APPLE_CC)" = x1; then \
|
if test "x$(TARGET_APPLE_LINKER)" = x1; then \
|
||||||
rm -f $@.bin; \
|
rm -f $@.bin; \
|
||||||
$(TARGET_CC) -m64 -Wl,-r -nostdlib -o $@.bin $^ || exit 1; \
|
$(TARGET_CC) -m64 -Wl,-r -nostdlib -o $@.bin $^ || exit 1; \
|
||||||
$(OBJCONV) -felf64 -nu -nd $@.bin $@ || exit 1; \
|
$(OBJCONV) -felf64 -nu -nd $@.bin $@ || exit 1; \
|
||||||
|
|
|
@ -35,7 +35,7 @@ deps=`grep ^$modname: $moddep | sed s@^.*:@@`
|
||||||
# remove old files if any
|
# remove old files if any
|
||||||
rm -f $tmpfile $outfile
|
rm -f $tmpfile $outfile
|
||||||
|
|
||||||
if test x@TARGET_APPLE_CC@ != x1; then
|
if test x@TARGET_APPLE_LINKER@ != x1; then
|
||||||
# stripout .modname and .moddeps sections from input module
|
# stripout .modname and .moddeps sections from input module
|
||||||
@TARGET_OBJCOPY@ -R .modname -R .moddeps $infile $tmpfile
|
@TARGET_OBJCOPY@ -R .modname -R .moddeps $infile $tmpfile
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue