On 15.11.2013 15:35, Andrey Borzenkov wrote: > В Fri, 15 Nov 2013 15:02:11 +0100 > Vladimir 'φ-coder/phcoder' Serbinenko <phco...@gmail.com> пишет: > >> On 15.11.2013 14:43, Andrey Borzenkov wrote: >>> В Fri, 15 Nov 2013 13:33:07 +0100 >>> Vladimir 'φ-coder/phcoder' Serbinenko <phco...@gmail.com> пишет: >>> >>>> On 15.11.2013 13:22, Andrey Borzenkov wrote: >>>>> В Fri, 15 Nov 2013 12:00:49 +0100 >>>>> Vladimir 'φ-coder/phcoder' Serbinenko <phco...@gmail.com> пишет: >>>>> >>>>>> On 15.11.2013 06:19, Andrey Borzenkov wrote: >>>>>>> Sources at 6fcec439545c817fbc8e2f51c667a70037a34a76 >>>>>>> >>>>>>> Building RPM for PPC (32 or 64 bits) I get >>>>>>> >>>>>>> [ 187s] cat syminfo.lst | sort | gawk -f ../../grub-core/genmoddep.awk >>>>>>> > moddep.lst || (rm -f moddep.lst; exit 1) >>>>>>> [ 187s] __ashldi3 in affs is not defined >>>>>>> [ 187s] _restgpr_14_x in affs is not defined >>>>>>> [ 187s] _restgpr_20_x in affs is not defined >>>>>>> [ 187s] _restgpr_25_x in affs is not defined >>>>>>> [ 187s] _restgpr_27_x in affs is not defined >>>>>>> [ 187s] _restgpr_28_x in affs is not defined >>>>>>> [ 187s] _restgpr_30_x in affs is not defined >>>>>>> ... >>>>>>> >>>>>>> for a long list of them. >>>>>>> >>>>>>> Full build logs are available as >>>>>>> https://build.opensuse.org/build/home:arvidjaar:grub2-next/openSUSE_Factory_PowerPC/ppc/grub2/_log >>>>>>> https://build.opensuse.org/build/home:arvidjaar:grub2-next/openSUSE_Factory_PowerPC/ppc64/grub2/_log >>>>>>> >>>>>>> I do not myself have access to any PPC system nor any experience with >>>>>>> them. >>>>>>> >>>>>> You don't have multilib installed. >>>>> >>>>> Could you elaborate? This is native build on PPC system. It has both 64 >>>>> and 32 bit of gcc and libgcc installed: >>>>> >>>>> [ 12s] libgcc_s1-32bit-4.8.1_20130909-5.1 >>>>> ######################################## >>>>> [ 10s] libgcc_s1-4.8.1_20130909-5.1 >>>>> ######################################## >>>>> [ 17s] gcc48-4.8.1_20130909-5.1 >>>>> ######################################## >>>>> [ 17s] gcc48-32bit-4.8.1_20130909-5.1 >>>>> ######################################## >>>>> >>>>> This did build successfully until some recent changes (grub2 *is* part >>>>> of openSUSE for PPC). I compared logs for x86 and ppc and both say >>>>> >>>>> [ 119s] checking for __bswapsi2... no >>>>> [ 119s] checking for __bswapdi2... no >>>>> [ 119s] checking for __ashldi3... no >>>>> [ 120s] checking for __ashrdi3... no >>>>> [ 120s] checking for __lshrdi3... no >>>>> [ 120s] checking for __ucmpdi2... no >>>>> [ 120s] checking for _restgpr_14_x... no >>>>> >>>>> unfortunately I'm stuck here. For all I can tell it should either fail >>>>> or succeed in both cases. >>>>> >>>> It should say all "no" on x86 and almost all "yes" on ppc. This output >>>> indicates that link with libgcc failed. You can look how exactly the >>>> test failed in config.log. Can you send me config.log ? >>> >>> Initially it failed due to missing -lc. After adding glibc-devel-static >>> to buildrequires it now fails due to redefined abort: >>> >>> [ 121s] configure:25260: checking for __bswapsi2 >>> [ 121s] configure:25260: gcc -o conftest -Os -Wall -W -Wshadow >>> -Wold-style-definition -Wpointer-arith -Wundef -Wextra -Wattributes >>> -Wchar-subscripts -Wcomment -Wdeprecated-declarations >>> -Wdisabled-optimization -Wdiv-by-zero -Wendif-labels -Wfloat-equal >>> -Wformat-extra-args -Wformat-security -Wformat-y2k -Wimplicit >>> -Wimplicit-function-declaration -Wimplicit-int -Winit-self >>> -Wint-to-pointer-cast -Winvalid-pch -Wmain -Wmissing-braces >>> -Wmissing-field-initializers -Wmissing-format-attribute -Wmultichar >>> -Wnonnull -Woverflow -Wparentheses -Wpointer-arith -Wpointer-to-int-cast >>> -Wreturn-type -Wsequence-point -Wshadow -Wsign-compare -Wstrict-aliasing >>> -Wswitch -Wtrigraphs -Wundef -Wunknown-pragmas -Wunused -Wunused-function >>> -Wunused-label -Wunused-parameter -Wunused-value -Wunused-variable >>> -Wvariadic-macros -Wvolatile-register-var -Wwrite-strings -Wnested-externs >>> -Wstrict-prototypes -Wpointer-sign -g -Wredundant-decls >>> -Wmissing-prototypes -Wmissing-declarations -Wcast-align -m32 -freg-struc t- >> return -fno-dwarf2-cfi-asm -fno-asynchronous-unwind-tables >> -fno-stack-protector -Wl,--defsym,abort=main -Wall -W >> -I$(top_srcdir)/include -I$(top_builddir)/include -DGRUB_MACHINE_IEEE1275=1 >> -DGRUB_MACHINE=POWERPC_IEEE1275 -DGRUB_TARGET_CPU_POWERPC=1 -m32 -static >> -m32 conftest.c -lgcc >&5 >>> [ 121s] conftest.c:385:1: warning: function declaration isn't a prototype >>> [-Wstrict-prototypes] >>> [ 121s] char __bswapsi2 (); >>> [ 121s] conftest.c:385:1: warning: function declaration isn't a prototype >>> [-Wstrict-prototypes] >>> [ 121s] char __bswapsi2 (); >>> [ 121s] ^ >>> [ 121s] >>> /usr/lib/gcc/powerpc64-suse-linux/4.8/../../../../lib/libc.a(abort.o): In >>> function `abort': >>> [ 121s] /home/abuild/rpmbuild/BUILD/glibc-2.18/stdlib/abort.c:51: multiple >>> definition of `abort' >>> [ 121s] collect2: error: ld returned 1 exit status >>> >> Try this: >> diff --git a/configure.ac b/configure.ac >> index 2c4f019..cd96588 100644 >> --- a/configure.ac >> +++ b/configure.ac >> @@ -821,6 +821,8 @@ CFLAGS="$TARGET_CFLAGS -Wl,--defsym,abort=main" >> fi >> fi >> >> +CFLAGS="$CFLAGS -nostdlib" >> + >> # Check for libgcc symbols >> AC_CHECK_FUNCS(__bswapsi2 __bswapdi2 __ashldi3 __ashrdi3 __lshrdi3 >> __ucmpdi2 _restgpr_14_x) >> >> >>> >>> -static is added by grub2.spec. I'm not sure, why - is it really needed? >>> > > Actually removing explicit TARGET_LDFLAGS=-static in grub2.spec fixed > it. I now wonder why it was added in the first place. > -static shouldn't create problems. Adding -nostdlib like I proposed should solve the problem. > > > _______________________________________________ > Grub-devel mailing list > Grub-devel@gnu.org > https://lists.gnu.org/mailman/listinfo/grub-devel >
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel