Closed Bug 894538 Opened 11 years ago Closed 11 years ago

STLPort causes link issues for tests on B2G JB Gonk

Categories

(Firefox OS Graveyard :: General, defect)

x86_64
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: qdot, Assigned: glandium)

References

Details

Attachments

(1 file)

When building B2G using m-c as of 2013-07-16, the following link errors happen while building gecko:

    BUILDSTATUS TIERDIR_START mfbt
    Executing: /usr/bin/ccache ../../../../prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androideabi-g++ -DANDROID -isystem ../../../../bionic/libc/arch-arm/include -isystem ../../../../bionic/libc/include -isystem ../../../../bionic/libc/kernel/common -isystem ../../../../bionic/libc/kernel/arch-arm -isystem ../../../../bionic/libm/include -I/share/mozbuild/B2G/system -I/share/mozbuild/B2G/system/core/include -isystem ../../../../bionic -I/share/mozbuild/B2G/hardware/libhardware/include -I/share/mozbuild/B2G/external/valgrind/fxos-include -I/share/mozbuild/B2G/frameworks/native/include -Wall -Wpointer-arith -Woverloaded-virtual -Werror=return-type -Wtype-limits -Wempty-body -Wsign-compare -Wno-invalid-offsetof -mandroid -fno-short-enums -fno-exceptions -Wno-psabi -DMOZ_ENABLE_JS_DUMP -include ../../../../gonk-misc/Unicode.h -I/share/mozbuild/B2G/gecko/build/stlport/stlport -I/share/mozbuild/B2G/ndk/sources/cxx-stl/system/include -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=softfp -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -std=gnu++0x -pipe -DNDEBUG -DTRIMMED -g -Os -freorder-blocks -fno-reorder-functions -fomit-frame-pointer -o TestEndian /share/mozbuild/B2G/gecko/objdir-gonk/mfbt/tests/tmpitbvZo.list -mandroid -L/share/mozbuild/B2G/out/target/product/mako/obj/lib -Wl,-rpath-link=/share/mozbuild/B2G/out/target/product/mako/obj/lib --sysroot=/share/mozbuild/B2G/out/target/product/mako/obj/ -mthumb -Wl,-z,noexecstack -Wl,-z,text -Wl,--build-id -Wl,--icf=safe -Wl,-rpath-link,/home/qdot/code/mozbuild/B2G/gecko/objdir-gonk/dist/bin -Wl,-rpath-link,/usr/local/lib -L../../dist/bin -L../../dist/lib -llog /home/qdot/code/mozbuild/B2G/gecko/objdir-gonk/build/stlport/libstlport_static.a -static-libstdc++
    /share/mozbuild/B2G/gecko/objdir-gonk/mfbt/tests/tmpitbvZo.list:
        INPUT("TestEndian.o")
        INPUT("../bignum-dtoa.o")
        INPUT("../bignum.o")
        INPUT("../cached-powers.o")
        INPUT("../diy-fp.o")
        INPUT("../double-conversion.o")
        INPUT("../fast-dtoa.o")
        INPUT("../fixed-dtoa.o")
        INPUT("../strtod.o")
        INPUT("../HashFunctions.o")
        INPUT("../Poison.o")
        INPUT("../SHA1.o")
        INPUT("../Decimal.o")
     
    /share/mozbuild/B2G/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: error: cannot find -lstdc++
    /share/mozbuild/B2G/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /share/mozbuild/B2G/gecko/objdir-gonk/mfbt/tests/../double-conversion.o: in function double_conversion::DoubleToStringConverter::EcmaScriptConverter():../../mfbt/double-conversion/double-conversion.cc:49: error: undefined reference to '__cxa_guard_acquire'
    /share/mozbuild/B2G/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /share/mozbuild/B2G/gecko/objdir-gonk/mfbt/tests/../double-conversion.o: in function double_conversion::DoubleToStringConverter::EcmaScriptConverter():../../mfbt/double-conversion/double-conversion.cc:49: error: undefined reference to '__cxa_guard_release'
    /share/mozbuild/B2G/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /share/mozbuild/B2G/gecko/objdir-gonk/mfbt/tests/../Decimal.o: in function std::basic_streambuf<char, std::char_traits<char> >::~basic_streambuf():../../build/stlport/stlport/stl/_streambuf.c:41: error: undefined reference to 'operator delete(void*)'
    /share/mozbuild/B2G/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /share/mozbuild/B2G/gecko/objdir-gonk/mfbt/tests/../Decimal.o: in function std::basic_ostream<char, std::char_traits<char> >::~basic_ostream():../../build/stlport/stlport/stl/_ostream.c:44: error: undefined reference to 'operator delete(void*)'
    /share/mozbuild/B2G/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /share/mozbuild/B2G/gecko/objdir-gonk/mfbt/tests/../Decimal.o: in function std::basic_ios<char, std::char_traits<char> >::~basic_ios():../../build/stlport/stlport/stl/_ios.h:59: error: undefined reference to 'operator delete(void*)'
    /share/mozbuild/B2G/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /share/mozbuild/B2G/gecko/objdir-gonk/mfbt/tests/../Decimal.o: in function std::priv::_String_base<char, std::allocator<char> >::_M_deallocate_block():../../build/stlport/stlport/stl/_new.h:135: error: undefined reference to 'operator delete(void*)'
    /share/mozbuild/B2G/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /share/mozbuild/B2G/gecko/objdir-gonk/mfbt/tests/../Decimal.o: in function std::priv::_String_base<char, std::allocator<char> >::_M_allocate_block(unsigned int):../../build/stlport/stlport/stl/_new.h:134: error: undefined reference to 'operator new(unsigned int)'
    /share/mozbuild/B2G/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /share/mozbuild/B2G/gecko/objdir-gonk/mfbt/tests/../Decimal.o: in function std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_reserve(unsigned int):../../build/stlport/stlport/stl/_new.h:134: error: undefined reference to 'operator new(unsigned int)'
    /share/mozbuild/B2G/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /share/mozbuild/B2G/gecko/objdir-gonk/mfbt/tests/../Decimal.o: in function std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, char const*):../../build/stlport/stlport/stl/_new.h:134: error: undefined reference to 'operator new(unsigned int)'
    /share/mozbuild/B2G/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /share/mozbuild/B2G/gecko/objdir-gonk/mfbt/tests/../Decimal.o: in function std::basic_string<char, std::char_traits<char>, std::allocator<char> >& std::basic_string<char, std::char_traits<char>, std::allocator<char> >::append<char const*>(char const*, char const*):../../build/stlport/stlport/stl/_new.h:134: error: undefined reference to 'operator new(unsigned int)'
    /share/mozbuild/B2G/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /home/qdot/code/mozbuild/B2G/gecko/objdir-gonk/build/stlport/libstlport_static.a(locale_impl.o): in function std::_Locale_impl::Init::_M_count() const:../../../build/stlport/src/locale_impl.cpp:70: error: undefined reference to '__cxa_guard_acquire'
    /share/mozbuild/B2G/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /home/qdot/code/mozbuild/B2G/gecko/objdir-gonk/build/stlport/libstlport_static.a(locale_impl.o): in function std::_Locale_impl::Init::_M_count() const:../../../build/stlport/src/locale_impl.cpp:70: error: undefined reference to '__cxa_guard_release'
    /share/mozbuild/B2G/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /home/qdot/code/mozbuild/B2G/gecko/objdir-gonk/build/stlport/libstlport_static.a(locale_impl.o): in function std::_Locale_impl::make_classic_locale():../../../build/stlport/src/locale_impl.cpp:667: error: undefined reference to '__cxa_guard_acquire'
    /share/mozbuild/B2G/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /home/qdot/code/mozbuild/B2G/gecko/objdir-gonk/build/stlport/libstlport_static.a(locale_impl.o): in function std::_Locale_impl::make_classic_locale():../../../build/stlport/src/locale_impl.cpp:667: error: undefined reference to '__cxa_guard_release'
    /share/mozbuild/B2G/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /home/qdot/code/mozbuild/B2G/gecko/objdir-gonk/build/stlport/libstlport_static.a(locale_impl.o): in function std::_Locale_impl::make_classic_locale():../../../build/stlport/src/locale_impl.cpp:670: error: undefined reference to '__cxa_guard_acquire'
    /share/mozbuild/B2G/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /home/qdot/code/mozbuild/B2G/gecko/objdir-gonk/build/stlport/libstlport_static.a(locale_impl.o): in function std::_Locale_impl::make_classic_locale():../../../build/stlport/src/locale_impl.cpp:670: error: undefined reference to '__cxa_guard_release'
    /share/mozbuild/B2G/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: /home/qdot/code/mozbuild/B2G/gecko/objdir-gonk/build/stlport/libstlport_static.a(ctype.o): in function std::ctype<char>::~ctype():../../../build/stlport/src/ctype.cpp:324: error: undefined reference to 'operator delete[](void*)'
    collect2: ld returned 1 exit status
    make[7]: *** [TestEndian] Error 1
    make[7]: *** Waiting for unfinished jobs....
Possibly relates to what landed in bug 850576
Attached patch Tentative patchSplinter Review
Can you try this patch?
Assignee: nobody → mh+mozilla
Comment on attachment 776776 [details] [diff] [review]
Tentative patch

This patch is actually not worth testing. Using it will get back some of the problems that bug 850576 is fixing.

Can you give a list of the locations where you can find a libstdc++.a file in your gonk tree?
Attachment #776776 - Attachment is obsolete: true
./out/target/product/grouper/obj/STATIC_LIBRARIES/libstdc++_intermediates/libstdc++.a
./prebuilts/ndk/6/platforms/android-4/arch-arm/usr/lib/libstdc++.a
./prebuilts/ndk/6/platforms/android-5/arch-arm/usr/lib/libstdc++.a
./prebuilts/ndk/6/platforms/android-3/arch-arm/usr/lib/libstdc++.a
./prebuilts/ndk/6/platforms/android-9/arch-arm/usr/lib/libstdc++.a
./prebuilts/ndk/6/platforms/android-9/arch-x86/usr/lib/libstdc++.a
./prebuilts/ndk/6/platforms/android-8/arch-arm/usr/lib/libstdc++.a
./prebuilts/ndk/6/sources/cxx-stl/gnu-libstdc++/libs/armeabi-v7a/libstdc++.a
./prebuilts/ndk/6/sources/cxx-stl/gnu-libstdc++/libs/x86/libstdc++.a
./prebuilts/ndk/6/sources/cxx-stl/gnu-libstdc++/libs/armeabi/libstdc++.a
./prebuilts/ndk/8/platforms/android-4/arch-arm/usr/lib/libstdc++.a
./prebuilts/ndk/8/platforms/android-5/arch-arm/usr/lib/libstdc++.a
./prebuilts/ndk/8/platforms/android-3/arch-arm/usr/lib/libstdc++.a
./prebuilts/ndk/8/platforms/android-9/arch-arm/usr/lib/libstdc++.a
./prebuilts/ndk/8/platforms/android-9/arch-mips/usr/lib/libstdc++.a
./prebuilts/ndk/8/platforms/android-9/arch-x86/usr/lib/libstdc++.a
./prebuilts/ndk/8/platforms/android-14/arch-arm/usr/lib/libstdc++.a
./prebuilts/ndk/8/platforms/android-14/arch-mips/usr/lib/libstdc++.a
./prebuilts/ndk/8/platforms/android-14/arch-x86/usr/lib/libstdc++.a
./prebuilts/ndk/8/platforms/android-8/arch-arm/usr/lib/libstdc++.a
./prebuilts/ndk/4/platforms/android-4/arch-arm/usr/lib/libstdc++.a
./prebuilts/ndk/4/platforms/android-5/arch-arm/usr/lib/libstdc++.a
./prebuilts/ndk/4/platforms/android-5/arch-x86/usr/lib/libstdc++.a
./prebuilts/ndk/4/platforms/android-3/arch-arm/usr/lib/libstdc++.a
./prebuilts/ndk/4/platforms/android-8/arch-arm/usr/lib/libstdc++.a
./prebuilts/ndk/4/platforms/android-8/arch-x86/usr/lib/libstdc++.a
./prebuilts/ndk/7/platforms/android-4/arch-arm/usr/lib/libstdc++.a
./prebuilts/ndk/7/platforms/android-5/arch-arm/usr/lib/libstdc++.a
./prebuilts/ndk/7/platforms/android-3/arch-arm/usr/lib/libstdc++.a
./prebuilts/ndk/7/platforms/android-9/arch-arm/usr/lib/libstdc++.a
./prebuilts/ndk/7/platforms/android-9/arch-x86/usr/lib/libstdc++.a
./prebuilts/ndk/7/platforms/android-14/arch-arm/usr/lib/libstdc++.a
./prebuilts/ndk/7/platforms/android-14/arch-x86/usr/lib/libstdc++.a
./prebuilts/ndk/7/platforms/android-8/arch-arm/usr/lib/libstdc++.a
./prebuilts/ndk/5/platforms/android-4/arch-arm/usr/lib/libstdc++.a
./prebuilts/ndk/5/platforms/android-5/arch-arm/usr/lib/libstdc++.a
./prebuilts/ndk/5/platforms/android-3/arch-arm/usr/lib/libstdc++.a
./prebuilts/ndk/5/platforms/android-9/arch-arm/usr/lib/libstdc++.a
./prebuilts/ndk/5/platforms/android-8/arch-arm/usr/lib/libstdc++.a
./prebuilts/ndk/5/sources/cxx-stl/gnu-libstdc++/libs/armeabi-v7a/libstdc++.a
./prebuilts/ndk/5/sources/cxx-stl/gnu-libstdc++/libs/armeabi/libstdc++.a
./prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6/x86_64-linux/lib64/libstdc++.a
./prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6/i686-linux/lib/libstdc++.a
Blocks: 850576
Comment on attachment 776776 [details] [diff] [review]
Tentative patch

Cf. bug 850576 comment 25, this is actually fine.
Attachment #776776 - Attachment is obsolete: false
Attachment #776776 - Flags: review?(ted)
(In reply to Mike Hommey [:glandium] from comment #5)
> Comment on attachment 776776 [details] [diff] [review]

This fixes build breaks on JB Gonk, ARM and x86.
(In reply to Vicamo Yang [:vicamo][:vyang] from comment #6)
> (In reply to Mike Hommey [:glandium] from comment #5)
> > Comment on attachment 776776 [details] [diff] [review]
> 
> This fixes build breaks on JB Gonk, ARM and x86.

Is the "breaks" a verb or a noun?
Attachment #776776 - Flags: review?(ted) → review+
(In reply to Mike Hommey [:glandium] from comment #7)
> (In reply to Vicamo Yang [:vicamo][:vyang] from comment #6)
> > This fixes build breaks on JB Gonk, ARM and x86.
> 
> Is the "breaks" a verb or a noun?

Sorry, kind of ambiguous.  "build breaks", noun.
Can this be checked in?
Worked for me.
https://hg.mozilla.org/mozilla-central/rev/d98e2fa5b380
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: