> -----Original Message----- > From: Martin Sebor [mailto:[EMAIL PROTECTED] On Behalf Of Martin Sebor > Sent: Wednesday, February 20, 2008 1:54 AM > To: [email protected] > Subject: Re: svn commit: r627618 - > /stdcxx/trunk/etc/config/GNUmakefile.cfg > > Hi Farid, > > This change seems to have broken the config test dependency > detection logic and caused the EDG eccp build regression > described in STDCXX-733. > I assigned the issue to you but just in case you miss it > among all the other traffic on [EMAIL PROTECTED] Can you please > take a look into it whenever you have chance? > > http://issues.apache.org/jira/browse/STDCXX-733 > > Incidentally, out of curiosity, what is this change supposed to do?
I made this change in GNUmakefile because the EXTERN_FUNCTION_TEMPLATE.cpp config test has compiled twice on my gcc/Linux: 1) first it was not linked with extern_function_template_imp.o and due to this the macro _RWSTD_NO_EXTERN_FUNCTION_TEMPLATE is defined in config.h config.log: --------- ... gcc -D_RWSTDDEBUG -pthread -I. -pedantic -nostdinc++ -g -W -Wall -Wcast-qual -Winline -Wshadow -Wwrite-strings -Wno-long-long -Wcast-align -c /usr/src/trunk/etc/config/src/extern_function_template_imp.cpp -o extern_function_template_imp.o gcc -D_RWSTDDEBUG -pthread -I. -pedantic -nostdinc++ -g -W -Wall -Wcast-qual -Winline -Wshadow -Wwrite-strings -Wno-long-long -Wcast-align -c /usr/src/trunk/etc/config/src/EXTERN_FUNCTION_TEMPLATE.cpp -o EXTERN_FUNCTION_TEMPLATE.o gcc EXTERN_FUNCTION_TEMPLATE.o -pthread -lm -lsupc++ -o EXTERN_FUNCTION_TEMPLATE EXTERN_FUNCTION_TEMPLATE.o(.text+0x26): In function `main': /usr/src/trunk/etc/config/src/EXTERN_FUNCTION_TEMPLATE.cpp:47: undefined reference to `S<int> foobar<int>(S<int>)' collect2: ld returned 1 exit status ... --------- config.h: --------- ... // #define _RWSTD_NO_extern_function_template_imp #define _RWSTD_NO_EXTERN_FUNCTION_TEMPLATE ... --------- 2) second it was linked with extern_function_template_imp.o and the config.h contains the second entry, where _RWSTD_NO_EXTERN_FUNCTION_TEMPLATE define is commented config.log: --------- ...gcc -D_RWSTDDEBUG -pthread -I. -pedantic -nostdinc++ -g -W -Wall -Wcast-qual -Winline -Wshadow -Wwrite-strings -Wno-long-long -Wcast-align -c /usr/src/trunk/etc/config/src/EXTERN_FUNCTION_TEMPLATE.cpp -o EXTERN_FUNCTION_TEMPLATE.o gcc EXTERN_FUNCTION_TEMPLATE.o -pthread extern_function_template_imp.o -lm -lsupc++ -o EXTERN_FUNCTION_TEMPLATE ./EXTERN_FUNCTION_TEMPLATE ... --------- config.h: --------- ... // #define _RWSTD_NO_EXTERN_FUNCTION_TEMPLATE ... --------- As a result the _RWSTD_NO_EXTERN_FUNCTION_TEMPLATE macro is defined while gcc supports the extern function templates. The first compilation is come from "%.o: %.cpp" rule, and the second - from "config:" rule. Farid.
