[Bug 435560] Re: firefox fails to build with -Os on powerpc

Alexander Sack asac at ubuntu.com
Thu Sep 24 00:39:06 UTC 2009


when using -O2 the build fails later like:

g++ -o xptcinvoke_ppc64_linux.o -c -fvisibility=hidden -DMOZILLA_INTERNAL_API -DOSTYPE=\"Linux2.6\" -DOSARCH=Linux -DEXPORT_XPTC_API -D_IMPL_NS_COM -I./../.. -I./../../..
/../xptinfo/src  -I. -I. -I../../../../../../dist/include/string -I../../../../../../dist/include   -I../../../../../../dist/include/xpcom -I/usr/include/nspr   -I/usr/in
clude    -fPIC   -fno-rtti -fno-exceptions -Wall -Wpointer-arith -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wcast-align -Wno-invalid-offse
tof -Wno-long-long -pedantic -g -fno-strict-aliasing -fshort-wchar -pthread -pipe  -DNDEBUG -DTRIMMED -O2   -DMOZILLA_CLIENT -include ../../../../../../mozilla-config.h -
Wp,-MD,.deps/xptcinvoke_ppc64_linux.pp xptcinvoke_ppc64_linux.cpp
xptcinvoke_ppc64_linux.cpp: In function 'void invoke_copy_to_stack(PRUint64*, double*, PRUint32, nsXPTCVariant*, PRUint64*)':
xptcinvoke_ppc64_linux.cpp:78: warning: 'tempu64' may be used uninitialized in this function
xptcstubs_ppc64_linux.cpp
g++ -o xptcstubs_ppc64_linux.o -c -fvisibility=hidden -DMOZILLA_INTERNAL_API -DOSTYPE=\"Linux2.6\" -DOSARCH=Linux -DEXPORT_XPTC_API -D_IMPL_NS_COM -I./../.. -I./../../../
../xptinfo/src  -I. -I. -I../../../../../../dist/include/string -I../../../../../../dist/include   -I../../../../../../dist/include/xpcom -I/usr/include/nspr   -I/usr/inc
lude    -fPIC   -fno-rtti -fno-exceptions -Wall -Wpointer-arith -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wcast-align -Wno-invalid-offset
of -Wno-long-long -pedantic -g -fno-strict-aliasing -fshort-wchar -pthread -pipe  -DNDEBUG -DTRIMMED -O2   -DMOZILLA_CLIENT -include ../../../../../../mozilla-config.h -Wp,-MD,.deps/xptcstubs_ppc64_linux.pp xptcstubs_ppc64_linux.cpp
{standard input}: Assembler messages:
{standard input}:25: Error: junk at end of line, first unrecognized character is `@'
{standard input}:64: Error: junk at end of line, first unrecognized character is `@'
{standard input}:103: Error: junk at end of line, first unrecognized character is `@'
{standard input}:142: Error: junk at end of line, first unrecognized character is `@'
{standard input}:181: Error: junk at end of line, first unrecognized character is `@'
{standard input}:220: Error: junk at end of line, first unrecognized character is `@'
{standard input}:259: Error: junk at end of line, first unrecognized character is `@'
{standard input}:308: Error: junk at end of line, first unrecognized character is `@'
{standard input}:347: Error: junk at end of line, first unrecognized character is `@'
{standard input}:386: Error: junk at end of line, first unrecognized character is `@'
{standard input}:425: Error: junk at end of line, first unrecognized character is `@'
{standard input}:464: Error: junk at end of line, first unrecognized character is `@'
{standard input}:503: Error: junk at end of line, first unrecognized character is `@'
{standard input}:542: Error: junk at end of line, first unrecognized character is `@'
{standard input}:581: Error: junk at end of line, first unrecognized character is `@'
{standard input}:620: Error: junk at end of line, first unrecognized character is `@'
{standard input}:659: Error: junk at end of line, first unrecognized character is `@'
{standard input}:698: Error: junk at end of line, first unrecognized character is `@'
{standard input}:737: Error: junk at end of line, first unrecognized character is `@'
{standard input}:776: Error: junk at end of line, first unrecognized character is `@'

asm Code failing is pasted below and
http://mxr.mozilla.org/mozilla1.9.1/source/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc64_linux.cpp

// gcc-3 version
//
// As G++3 ABI contains the length of the functionname in the mangled
// name, it is difficult to get a generic assembler mechanism like
// in the G++ 2.95 case.
// Create names would be like:
// _ZN14nsXPTCStubBase5Stub1Ev
// _ZN14nsXPTCStubBase6Stub12Ev
// _ZN14nsXPTCStubBase7Stub123Ev
// _ZN14nsXPTCStubBase8Stub1234Ev
// etc.
// Use assembler directives to get the names right...

# define STUB_ENTRY(n)                                                  \
__asm__ (                                                               \
        ".section \".toc\",\"aw\" \n\t"                                 \
        ".section \".text\" \n\t"                                       \
        ".align 2 \n\t"                                                 \
        ".if "#n" < 10 \n\t"                                            \
        ".globl _ZN14nsXPTCStubBase5Stub"#n"Ev \n\t"                    \
        ".section \".opd\",\"aw\" \n\t"                                 \
        ".align 3 \n\t"                                                 \
"_ZN14nsXPTCStubBase5Stub"#n"Ev: \n\t"                                  \
        ".quad  ._ZN14nsXPTCStubBase5Stub"#n"Ev,.TOC. at tocbase \n\t"     \
        ".previous \n\t"                                                \
        ".type  _ZN14nsXPTCStubBase5Stub"#n"Ev, at function \n\n"          \
"._ZN14nsXPTCStubBase5Stub"#n"Ev: \n\t"                                 \
                                                                        \
        ".elseif "#n" < 100 \n\t"                                       \
        ".globl _ZN14nsXPTCStubBase6Stub"#n"Ev \n\t"                    \
        ".section \".opd\",\"aw\" \n\t"                                 \
        ".align 3 \n\t"                                                 \
"_ZN14nsXPTCStubBase6Stub"#n"Ev: \n\t"                                  \
        ".quad  ._ZN14nsXPTCStubBase6Stub"#n"Ev,.TOC. at tocbase \n\t"     \
        ".previous \n\t"                                                \
        ".type  _ZN14nsXPTCStubBase6Stub"#n"Ev, at function \n\n"          \
"._ZN14nsXPTCStubBase6Stub"#n"Ev: \n\t"                                 \
                                                                        \
        ".elseif "#n" < 1000 \n\t"                                      \
        ".globl _ZN14nsXPTCStubBase7Stub"#n"Ev \n\t"                    \
        ".section \".opd\",\"aw\" \n\t"                                 \
        ".align 3 \n\t"                                                 \
"_ZN14nsXPTCStubBase7Stub"#n"Ev: \n\t"                                  \
        ".quad  ._ZN14nsXPTCStubBase7Stub"#n"Ev,.TOC. at tocbase \n\t"     \
        ".previous \n\t"                                                \
        ".type  _ZN14nsXPTCStubBase7Stub"#n"Ev, at function \n\n"          \
"._ZN14nsXPTCStubBase7Stub"#n"Ev: \n\t"                                 \
                                                                        \
        ".else  \n\t"                                                   \
        ".err   \"stub number "#n" >= 1000 not yet supported\"\n"       \
        ".endif \n\t"                                                   \
                                                                        \
        "li     11,"#n" \n\t"                                           \
        "b      SharedStub \n"                                          \
);
#endif


** Also affects: gcc-4.4 (Ubuntu)
   Importance: Undecided
       Status: New

-- 
firefox fails to build with -Os on powerpc
https://bugs.launchpad.net/bugs/435560
You received this bug notification because you are a member of Mozilla
Bugs, which is subscribed to xulrunner-1.9.1 in ubuntu.




More information about the Ubuntu-mozillateam-bugs mailing list