http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54630



             Bug #: 54630

           Summary: GCC 4.8 --enable-languages=c build fails: Undefined

                    symbols: ___cxa_guard_acquire and ___cxa_guard_release

    Classification: Unclassified

           Product: gcc

           Version: 4.8.0

            Status: UNCONFIRMED

          Severity: blocker

          Priority: P3

         Component: libstdc++

        AssignedTo: unassig...@gcc.gnu.org

        ReportedBy: ba...@usgs.gov





Created attachment 28222

  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28222

Download, configure, and build gcc 4.8 for ColdFire uClinux



Build of 4.8 20120909 snapshot

(http://fossies.org/unix/misc/gcc-4.8-20120909.tar.gz) fails for

--enable-languages=c:



g++ -c  -DIN_GCC_FRONTEND -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE 

-fno-exceptions -fno-rtti -W -Wall -Wwrite-strings -Wcast-qual

-Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros

-Wno-overlength-strings -fno-common  -DHAVE_CONFIG_H -I. -I.

-I/tmp/freescale-coldfile-xgcc/cross-gcc-4.8-20120909/../gcc-4.8-20120909/gcc

-I/tmp/freescale-coldfile-xgcc/cross-gcc-4.8-20120909/../gcc-4.8-20120909/gcc/.

-I/tmp/freescale-coldfile-xgcc/cross-gcc-4.8-20120909/../gcc-4.8-20120909/gcc/../include

-I/tmp/freescale-coldfile-xgcc/cross-gcc-4.8-20120909/../gcc-4.8-20120909/gcc/../libcpp/include



-I/tmp/freescale-coldfile-xgcc/cross-gcc-4.8-20120909/../gcc-4.8-20120909/gcc/../libdecnumber

-I/tmp/freescale-coldfile-xgcc/cross-gcc-4.8-20120909/../gcc-4.8-20120909/gcc/../libdecnumber/dpd

-I../libdecnumber    cc1-checksum.c -o cc1-checksum.o

gcc   -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions -fno-rtti -W

-Wall -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -pedantic

-Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common 

-DHAVE_CONFIG_H  -o cc1 c/c-lang.o c-family/stub-objc.o attribs.o c/c-errors.o

c/c-decl.o c/c-typeck.o c/c-convert.o c/c-aux-info.o c/c-objc-common.o

c/c-parser.o c-family/c-common.o c-family/c-cppbuiltin.o c-family/c-dump.o

c-family/c-format.o c-family/c-gimplify.o c-family/c-lex.o c-family/c-omp.o

c-family/c-opts.o c-family/c-pch.o c-family/c-ppoutput.o c-family/c-pragma.o

c-family/c-pretty-print.o c-family/c-semantics.o c-family/c-ada-spec.o

tree-mudflap.o default-c.o \

      cc1-checksum.o libbackend.a main.o tree-browser.o libcommon-target.a

libcommon.a ../libcpp/libcpp.a ../libdecnumber/libdecnumber.a libcommon.a

../libcpp/libcpp.a  -liconv ../libiberty/libiberty.a

../libdecnumber/libdecnumber.a -static-libgcc -static-libstdc++ -lm  -lmpc

-lmpfr -lgmp  -static-libgcc -static-libstdc++ -lm -L../zlib -lz

Undefined symbols:

  "___cxa_guard_acquire", referenced from:

      coalesce_ssa_name()     in libbackend.a(tree-ssa-coalesce.o)

  "___cxa_guard_release", referenced from:

      coalesce_ssa_name()     in libbackend.a(tree-ssa-coalesce.o)

ld: symbol(s) not found

collect2: ld returned 1 exit status

make[2]: *** [cc1] Error 1

make[1]: *** [all-gcc] Error 2

make: *** [all] Error 2



It looks to me like: now that GCC is implemented in C++, certain libstdc++

functions are needed, but are not compiled when --enable-languages=c.



Attached are instructions to replicate my build.

Reply via email to