[Bug bootstrap/52887] Bootstrap on AIX failure: Undefined symbol: .std::functionvoid (std::__regex::_PatternCursor const, std::__regex::_Results)::function(std::functionvoid (std::__regex::_Patte

2013-02-11 Thread bkoz at gcc dot gnu.org


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



Benjamin Kosnik bkoz at gcc dot gnu.org changed:



   What|Removed |Added



 CC||bkoz at gcc dot gnu.org,

   ||bkoz at redhat dot com



--- Comment #28 from Benjamin Kosnik bkoz at gcc dot gnu.org 2013-02-11 
23:53:30 UTC ---



FWIW, I think the real fix here is to compile regex.cc with

-fimplicit-templates. I suspect that different things are being inlined on AIX

than on linux/ELF, there is an assumed implicit instantiation on AIX for this

symbol that is currently being supressed via -fno-implicit-templates.


[Bug bootstrap/52887] Bootstrap on AIX failure: Undefined symbol: .std::functionvoid (std::__regex::_PatternCursor const, std::__regex::_Results)::function(std::functionvoid (std::__regex::_Patte

2013-01-16 Thread redi at gcc dot gnu.org


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



--- Comment #26 from Jonathan Wakely redi at gcc dot gnu.org 2013-01-17 
01:39:52 UTC ---

Author: redi

Date: Thu Jan 17 01:39:46 2013

New Revision: 195258



URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=195258

Log:

PR libstdc++/52887

* src/c++11/regex.cc: Add instantiations for AIX.



Modified:

branches/gcc-4_7-branch/libstdc++-v3/ChangeLog

branches/gcc-4_7-branch/libstdc++-v3/src/c++11/regex.cc


[Bug bootstrap/52887] Bootstrap on AIX failure: Undefined symbol: .std::functionvoid (std::__regex::_PatternCursor const, std::__regex::_Results)::function(std::functionvoid (std::__regex::_Patte

2013-01-16 Thread redi at gcc dot gnu.org


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



Jonathan Wakely redi at gcc dot gnu.org changed:



   What|Removed |Added



 Status|NEW |RESOLVED

 Resolution||FIXED

   Target Milestone|--- |4.7.3



--- Comment #27 from Jonathan Wakely redi at gcc dot gnu.org 2013-01-17 
01:41:06 UTC ---

Should be fixed, please reopen if not.


[Bug bootstrap/52887] Bootstrap on AIX failure: Undefined symbol: .std::functionvoid (std::__regex::_PatternCursor const, std::__regex::_Results)::function(std::functionvoid (std::__regex::_Patte

2012-11-25 Thread dje at gcc dot gnu.org


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



--- Comment #25 from David Edelsohn dje at gcc dot gnu.org 2012-11-26 
02:50:22 UTC ---

The instantiations definitely should be in libstdc++-v3/src/c++11/regex.cc in

the GCC 4.7 release branch.


[Bug bootstrap/52887] Bootstrap on AIX failure: Undefined symbol: .std::functionvoid (std::__regex::_PatternCursor const, std::__regex::_Results)::function(std::functionvoid (std::__regex::_Patte

2012-11-21 Thread gilles.pion at gmail dot com


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



Gilles Pion gilles.pion at gmail dot com changed:



   What|Removed |Added



 CC||gilles.pion at gmail dot

   ||com



--- Comment #24 from Gilles Pion gilles.pion at gmail dot com 2012-11-21 
08:02:41 UTC ---

I have the exact same problem on AIX 5.3 trying to bootstrat GCC but with

version 4.7.2. in my case



I have to admit that I don't understand all the issues described here but since

I've been able to bootstrap 7.2.1 without any problem I'm a bit surprised.


[Bug bootstrap/52887] Bootstrap on AIX failure: Undefined symbol: .std::functionvoid (std::__regex::_PatternCursor const, std::__regex::_Results)::function(std::functionvoid (std::__regex::_Patte

2012-09-15 Thread dje at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52887

--- Comment #23 from David Edelsohn dje at gcc dot gnu.org 2012-09-16 
02:36:27 UTC ---
I do not see the extraneous symbols using the example in comment #22 when
compiling with trunk.  Also, the example G++ invocation does not enable any
optimizations.


[Bug bootstrap/52887] Bootstrap on AIX failure: Undefined symbol: .std::functionvoid (std::__regex::_PatternCursor const, std::__regex::_Results)::function(std::functionvoid (std::__regex::_Patte

2012-09-14 Thread joerg.rich...@pdv-fs.de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52887

--- Comment #22 from Jörg Richter joerg.rich...@pdv-fs.de 2012-09-14 07:58:16 
UTC ---
I have reduced a real live case. But still using vector.

$ cat t.cc
#include vector
struct ClassicUpdate
{
ClassicUpdate();
};
typedef std::vectorClassicUpdate ClassicUpdates;
struct UpdateData
{
ClassicUpdates classicUpdates;

UpdateData( ClassicUpdates const classicUpdates )
  : classicUpdates( classicUpdates )
{}
};
int main()
{}

$ g++ -std=gnu++0x -o mm t.cc -save-temps

$ grep Construct.*ClassicUpdate *.s
.weak   _ZSt10_ConstructI13ClassicUpdateIRKS0_EEvPT_DpOT0_[DS]
  ...

This should demostrate that GCC compiles a symbol referencing ClassicUpdate
into the executable. When the AIX linker decides to use that symbol you get 
an undefined reference error. This is not the case here. But the unreduced 
source has the problem.

GCC 4.6.3 doesn't do this. And removing -std=gnu++0x works too.

So it seems this is not regex-related but a deeper bug in GCC 4.7 that emits 
functions that are never called.


[Bug bootstrap/52887] Bootstrap on AIX failure: Undefined symbol: .std::functionvoid (std::__regex::_PatternCursor const, std::__regex::_Results)::function(std::functionvoid (std::__regex::_Patte

2012-07-24 Thread skunk at iskunk dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52887

--- Comment #21 from Daniel Richard G. skunk at iskunk dot org 2012-07-25 
03:18:32 UTC ---
(In reply to comment #18)
 Maybe the regex code is non-functional, but *something* is referencing the
 symbol under certain circumstances.

I figure this is a question worth answering. Repeating the failed link with
-Wl,-bnoquiet gives some helpful information:

ld: 0711-318 ERROR: Undefined symbols were found.
The following symbols are in error:
 SymbolInpndx  TY CL Source-File(Object-File) OR
Import-File{Shared-object}
  RLD: Address  Section  Rld-type Referencing
Symbol

--
 .std::functionvoid (std::__regex::_PatternCursor const,
std::__regex::_Results)::function(std::functionvoid
(std::__regex::_PatternCursor const, std::__regex::_Results) const) [146]  
ER PR
/home/src/gcc-4.7.1/libstdc++-v3/src/c++11/regex.cc(/tmp/gcc-build/prev-powerpc-ibm-aix5.3.0.0/libstdc++-v3/src/.libs/libstdc++.a[regex.o])
   2918 .textR_RBR[3582] 
.std::__regex::_State::_State(std::__regex::_State const)
 .std::functionvoid (std::__regex::_PatternCursor const,
std::__regex::_Results)::function(std::functionvoid
(std::__regex::_PatternCursor const, std::__regex::_Results) const) [276]  
ER PR
/home/src/gcc-4.7.1/libstdc++-v3/src/c++11/functexcept.cc(/tmp/gcc-build/prev-powerpc-ibm-aix5.3.0.0/libstdc++-v3/src/.libs/libstdc++.a[functexcept.o])
   3e18 .textR_RBR[4312] 
.std::__regex::_State::_State(std::__regex::_State const)
 .std::functionbool (std::__regex::_PatternCursor
const)::function(std::functionbool (std::__regex::_PatternCursor const)
const) [148]   ER PR
/home/src/gcc-4.7.1/libstdc++-v3/src/c++11/regex.cc(/tmp/gcc-build/prev-powerpc-ibm-aix5.3.0.0/libstdc++-v3/src/.libs/libstdc++.a[regex.o])
   2938 .textR_RBR[3582] 
.std::__regex::_State::_State(std::__regex::_State const)
 .std::functionbool (std::__regex::_PatternCursor
const)::function(std::functionbool (std::__regex::_PatternCursor const)
const) [278]   ER PR
/home/src/gcc-4.7.1/libstdc++-v3/src/c++11/functexcept.cc(/tmp/gcc-build/prev-powerpc-ibm-aix5.3.0.0/libstdc++-v3/src/.libs/libstdc++.a[functexcept.o])
   3e38 .textR_RBR[4312] 
.std::__regex::_State::_State(std::__regex::_State const)
ER: The return code is 8.
ld: 0711-317 ERROR: Undefined symbol: .std::functionvoid
(std::__regex::_PatternCursor const,
std::__regex::_Results)::function(std::functionvoid
(std::__regex::_PatternCursor const, std::__regex::_Results) const)
ld: 0711-317 ERROR: Undefined symbol: .std::functionbool
(std::__regex::_PatternCursor const)::function(std::functionbool
(std::__regex::_PatternCursor const) const)
collect2: error: ld returned 8 exit status


[Bug bootstrap/52887] Bootstrap on AIX failure: Undefined symbol: .std::functionvoid (std::__regex::_PatternCursor const, std::__regex::_Results)::function(std::functionvoid (std::__regex::_Patte

2012-06-21 Thread joerg.rich...@pdv-fs.de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52887

--- Comment #19 from Jörg Richter joerg.rich...@pdv-fs.de 2012-06-21 06:58:13 
UTC ---
See also bug 53713.  Hasn't been marked as a dup yet.


[Bug bootstrap/52887] Bootstrap on AIX failure: Undefined symbol: .std::functionvoid (std::__regex::_PatternCursor const, std::__regex::_Results)::function(std::functionvoid (std::__regex::_Patte

2012-06-21 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52887

--- Comment #20 from Jonathan Wakely redi at gcc dot gnu.org 2012-06-21 
08:23:56 UTC ---
*** Bug 53713 has been marked as a duplicate of this bug. ***


[Bug bootstrap/52887] Bootstrap on AIX failure: Undefined symbol: .std::functionvoid (std::__regex::_PatternCursor const, std::__regex::_Results)::function(std::functionvoid (std::__regex::_Patte

2012-06-20 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52887

--- Comment #16 from Jonathan Wakely redi at gcc dot gnu.org 2012-06-20 
08:50:25 UTC ---
Whether or not it's more correct, the regex code is non-functional and so
needing to add symbols to the .so to support broken code noone uses or can use
is rather unfortunate.


[Bug bootstrap/52887] Bootstrap on AIX failure: Undefined symbol: .std::functionvoid (std::__regex::_PatternCursor const, std::__regex::_Results)::function(std::functionvoid (std::__regex::_Patte

2012-06-20 Thread dje at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52887

--- Comment #17 from David Edelsohn dje at gcc dot gnu.org 2012-06-20 
13:25:31 UTC ---
Another feature of AIX is its garbage-collecting linker. The very first
implementation of GCC for AIX was forced to emit an extra symbol to tie the
text section to the data section to prevent the linker from garbage collecting
a related section that did not have an obvious reference. This introduces an
extra dependency and may pull in unreferenced data sections from object files.
libstdc++ is built with --function-sections and --data-sections, which should
minimize this, but, again, if an application is relying upon the linker to
ignore missing definitions of symbols, it may behave differently on AIX.


[Bug bootstrap/52887] Bootstrap on AIX failure: Undefined symbol: .std::functionvoid (std::__regex::_PatternCursor const, std::__regex::_Results)::function(std::functionvoid (std::__regex::_Patte

2012-06-20 Thread dje at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52887

--- Comment #18 from David Edelsohn dje at gcc dot gnu.org 2012-06-20 
21:14:36 UTC ---
Strangely, someone else is reporting a runtime error with the same symbol:

exec(): 0509-036 Cannot load program a.out because of the following errors:
rtld: 0712-001 Symbol
_ZNSt8functionIFvRKNSt7__regex14_PatternCursorERNS0_8_ResultsEEEC1ERKS7_
was referenced from module
/opt/freeware/lib/gcc/powerpc-ibm-aix6.1.0.0/4.7.1/ppc64/libstdc++.a(libstdc++.so.6),
but a runtime definition of the symbol was not found.
rtld: 0712-001 Symbol
_ZNSt8functionIFbRKNSt7__regex14_PatternCursorEEEC1ERKS5_ was
referenced from module
/opt/freeware/lib/gcc/powerpc-ibm-aix6.1.0.0/4.7.1/ppc64/libstdc++.a(libstdc++.so.6),
but a runtime definition of the symbol was not found.
rtld: 0712-002 fatal error: exiting.

Maybe the regex code is non-functional, but *something* is referencing the
symbol under certain circumstances. The kludge patch fixes it, so the missing
instantiation is a problem. In the shared library case, if the symbol really is
referenced, I don't know how this is working on GNU/Linux.


[Bug bootstrap/52887] Bootstrap on AIX failure: Undefined symbol: .std::functionvoid (std::__regex::_PatternCursor const, std::__regex::_Results)::function(std::functionvoid (std::__regex::_Patte

2012-06-19 Thread dje at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52887

David Edelsohn dje at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2012-06-19
 CC||dje at gcc dot gnu.org
 Ever Confirmed|0   |1

--- Comment #13 from David Edelsohn dje at gcc dot gnu.org 2012-06-19 
23:21:27 UTC ---
I successfully bootstrap on AIX 5.3 multiple times per week with the need of
the additional instantiations. This may be due to different versions of the AIX
assembler. The system I am using has bos.adt.base level 5.3.7.0 installed. I
also do not use many of the additional configure options.

--disable-shared probably is a bad choice.

The file format used on AIX is XCOFF. The file format used on most other
systems is ELF. ELF provides a richer set of features for symbols and sections
that GCC implicitly assumes to support C++ features.

Additionally, SVR4/ELF semantics allows linkers to play a little more fast and
loose. Basically, SVR4/ELF lazy binding allows libraries to omit symbol
definitions if they never are used. I suspect that the instantiations that
Jonathan is adding truly are needed and should be defined for all systems, but
the other systems silently ignore the error.

And this probably works on my builds of AIX because I build shared libraries
with an option for SVR4-like semantics that allows link-time errors during
shared library creation.

So the real answer probably is that the instantiations are necessary and
libstdc++ really has a latent bug that is not visible on other systems.


[Bug bootstrap/52887] Bootstrap on AIX failure: Undefined symbol: .std::functionvoid (std::__regex::_PatternCursor const, std::__regex::_Results)::function(std::functionvoid (std::__regex::_Patte

2012-06-19 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52887

--- Comment #14 from Jonathan Wakely redi at gcc dot gnu.org 2012-06-20 
01:35:58 UTC ---
OK, I'll deal with it asap.  I have quite a queue of patches to test and commit
at present though.


[Bug bootstrap/52887] Bootstrap on AIX failure: Undefined symbol: .std::functionvoid (std::__regex::_PatternCursor const, std::__regex::_Results)::function(std::functionvoid (std::__regex::_Patte

2012-06-19 Thread skunk at iskunk dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52887

--- Comment #15 from Daniel Richard G. skunk at iskunk dot org 2012-06-20 
04:10:28 UTC ---
David, thank you for commenting; I have a better appreciation now of how AIX is
a different animal from most, and indeed may be doing things more correctly
than other systems on this one point.

I'd also like to bring attention to a seemingly similar issue I've encountered
when bootstrapping on AIX 4.3:

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53238#c11

That one is less straightforward, however, because (as reported a couple
comments further down) it only occurs when bootstrapping. If I build GCC with a
C-only GCC of the same version and --disable-bootstrap, there's no error.


[Bug bootstrap/52887] Bootstrap on AIX failure: Undefined symbol: .std::functionvoid (std::__regex::_PatternCursor const, std::__regex::_Results)::function(std::functionvoid (std::__regex::_Patte

2012-06-18 Thread joerg.rich...@pdv-fs.de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52887

--- Comment #10 from joerg.rich...@pdv-fs.de 2012-06-18 09:44:30 UTC ---
Created attachment 27649
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27649
Fix for undefined references

Patch for 4.7.1 with the two missing instantiations.
Works for me.  Not tested with GCC testsuite.
Please consider this for 4.7.2


[Bug bootstrap/52887] Bootstrap on AIX failure: Undefined symbol: .std::functionvoid (std::__regex::_PatternCursor const, std::__regex::_Results)::function(std::functionvoid (std::__regex::_Patte

2012-06-18 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52887

--- Comment #11 from Jonathan Wakely redi at gcc dot gnu.org 2012-06-18 
15:26:03 UTC ---
We know the instantiations that are needed, but I don't want to define them for
all platforms if they're not needed elsewhere. I also have no way of testing on
AIX, so someone needs to run the teststuite with the changes.


[Bug bootstrap/52887] Bootstrap on AIX failure: Undefined symbol: .std::functionvoid (std::__regex::_PatternCursor const, std::__regex::_Results)::function(std::functionvoid (std::__regex::_Patte

2012-06-18 Thread skunk at iskunk dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52887

--- Comment #12 from Daniel Richard G. skunk at iskunk dot org 2012-06-18 
16:56:42 UTC ---
(In reply to comment #11)
 We know the instantiations that are needed, but I don't want to define them 
 for
 all platforms if they're not needed elsewhere. I also have no way of testing 
 on
 AIX, so someone needs to run the teststuite with the changes.

I can do the testing, but is this really the solution? Why would AIX (and not
even all versions of AIX) need these instantiations, how is it doing things
differently from other systems?

This is fine as a workaround, but I'm presuming the real fix is to get GCC on
AIX working again the same way as it does elsewhere.


[Bug bootstrap/52887] Bootstrap on AIX failure: Undefined symbol: .std::functionvoid (std::__regex::_PatternCursor const, std::__regex::_Results)::function(std::functionvoid (std::__regex::_Patte

2012-05-12 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52887

--- Comment #9 from Paolo Carlini paolo.carlini at oracle dot com 2012-05-12 
08:35:05 UTC ---
AIX used to be even more special about this...


[Bug bootstrap/52887] Bootstrap on AIX failure: Undefined symbol: .std::functionvoid (std::__regex::_PatternCursor const, std::__regex::_Results)::function(std::functionvoid (std::__regex::_Patte

2012-05-11 Thread skunk at iskunk dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52887

--- Comment #6 from Daniel Richard G. skunk at iskunk dot org 2012-05-11 
17:05:57 UTC ---
With the new build, I now see one missing symbol instead of two. (Not sure why
the earlier hacked build went through):

gmake[3]: Entering directory `/tmp/gcc-4.7.0/_build/gcc'
/tmp/gcc-4.7.0/_build/./prev-gcc/g++ -B/tmp/gcc-4.7.0/_build/./prev-gcc/
-B/opt/tg/powerpc-ibm-aix5.3.0.0/bin/ -nostdinc++
-B/tmp/gcc-4.7.0/_build/prev-powerpc-ibm-aix5.3.0.0/libstdc++-v3/src/.libs
-B/tmp/gcc-4.7.0/_build/prev-powerpc-ibm-aix5.3.0.0/libstdc++-v3/libsupc++/.libs
-I/tmp/gcc-4.7.0/_build/prev-powerpc-ibm-aix5.3.0.0/libstdc++-v3/include/powerpc-ibm-aix5.3.0.0
-I/tmp/gcc-4.7.0/_build/prev-powerpc-ibm-aix5.3.0.0/libstdc++-v3/include
-I/tmp/gcc-4.7.0/libstdc++-v3/libsupc++
-L/tmp/gcc-4.7.0/_build/prev-powerpc-ibm-aix5.3.0.0/libstdc++-v3/src/.libs
-L/tmp/gcc-4.7.0/_build/prev-powerpc-ibm-aix5.3.0.0/libstdc++-v3/libsupc++/.libs
  -g -O2 -DIN_GCC   -fno-exceptions -fno-rtti -W -Wall -Wno-narrowing
-Wwrite-strings -Wcast-qual -Wmissing-format-attribute -pedantic -Wno-long-long
-Wno-variadic-macros -Wno-overlength-strings   -DHAVE_CONFIG_H
-static-libstdc++ -static-libgcc -Wl,-bbigtoc -Wl,-bmaxdata:0x4000 -o cc1
c-lang.o c-family/stub-objc.o attribs.o c-errors.o c-decl.o c-typeck.o
c-convert.o c-aux-info.o c-objc-common.o c-parser.o tree-mudflap.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
default-c.o rs6000-c.o \
  cc1-checksum.o main.o  libbackend.a libcommon-target.a libcommon.a
../libcpp/libcpp.a ../libdecnumber/libdecnumber.a libcommon.a
../libcpp/libcpp.a   ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a   
-L/tg/freeport/arch/aix64/lib -L/tg/freeport/arch/aix64/lib
-L/tg/freeport/arch/aix64/lib -lmpc -lmpfr -lgmp   -L../zlib -lz
ld: 0711-317 ERROR: Undefined symbol: .std::functionbool
(std::__regex::_PatternCursor const)::function(std::functionbool
(std::__regex::_PatternCursor const) const)
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
collect2: error: ld returned 8 exit status
gmake[3]: *** [cc1] Error 1
gmake[3]: Leaving directory `/tmp/gcc-4.7.0/_build/gcc'
gmake[2]: *** [all-stage2-gcc] Error 2
gmake[2]: Leaving directory `/tmp/gcc-4.7.0/_build'
gmake[1]: *** [stage2-bubble] Error 2
gmake[1]: Leaving directory `/tmp/gcc-4.7.0/_build'
gmake: *** [bootstrap] Error 2


Perhaps one more instantiation is needed?


[Bug bootstrap/52887] Bootstrap on AIX failure: Undefined symbol: .std::functionvoid (std::__regex::_PatternCursor const, std::__regex::_Results)::function(std::functionvoid (std::__regex::_Patte

2012-05-11 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52887

--- Comment #7 from Jonathan Wakely redi at gcc dot gnu.org 2012-05-11 
18:34:59 UTC ---
Looks as though it also needs

template class functionbool (__regex::_PatternCursor const);


[Bug bootstrap/52887] Bootstrap on AIX failure: Undefined symbol: .std::functionvoid (std::__regex::_PatternCursor const, std::__regex::_Results)::function(std::functionvoid (std::__regex::_Patte

2012-05-11 Thread skunk at iskunk dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52887

--- Comment #8 from Daniel Richard G. skunk at iskunk dot org 2012-05-12 
05:09:15 UTC ---
(In reply to comment #7)
 Looks as though it also needs
 template class functionbool (__regex::_PatternCursor const);

I added that, and with the two instantiations, bootstrap completes
successfully.

(I don't suppose that's the fix, however, given that other systems don't need
this...)


[Bug bootstrap/52887] Bootstrap on AIX failure: Undefined symbol: .std::functionvoid (std::__regex::_PatternCursor const, std::__regex::_Results)::function(std::functionvoid (std::__regex::_Patte

2012-05-10 Thread skunk at iskunk dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52887

--- Comment #2 from Daniel Richard G. skunk at iskunk dot org 2012-05-10 
13:54:12 UTC ---
I can avoid this error during bootstrap by configuring with
--disable-build-poststage1-with-cxx, but then I get the same link error when
building regular C++ programs with the newly-built compiler.


[Bug bootstrap/52887] Bootstrap on AIX failure: Undefined symbol: .std::functionvoid (std::__regex::_PatternCursor const, std::__regex::_Results)::function(std::functionvoid (std::__regex::_Patte

2012-05-10 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52887

--- Comment #3 from Jonathan Wakely redi at gcc dot gnu.org 2012-05-10 
14:57:02 UTC ---
does adding this instantiation to libstdc++-v3/src/c++11/regex.cc help?


--- r2012-05-10 16:56:35.252128466 +0200
+++ regex.cc2012-05-10 16:56:39.412128415 +0200
@@ -34,5 +34,7 @@

   regex_error::~regex_error() throw() { }

+  template class functionvoid (__regex::_PatternCursor const,
__regex::_Results);
+
 _GLIBCXX_END_NAMESPACE_VERSION
 } // namespace std


[Bug bootstrap/52887] Bootstrap on AIX failure: Undefined symbol: .std::functionvoid (std::__regex::_PatternCursor const, std::__regex::_Results)::function(std::functionvoid (std::__regex::_Patte

2012-05-10 Thread skunk at iskunk dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52887

--- Comment #4 from Daniel Richard G. skunk at iskunk dot org 2012-05-10 
15:04:22 UTC ---
Created attachment 27364
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27364
Workaround to provide the two missing symbols

I needed a working 4.7.0, and don't use the STL, so I put together a small
workaround for this bug. Compile this source file, and add the object to the
appropriate libstdc++.a library. More details in the file.

(Note that I build GCC with --disable-shared; fixing a shared libstdc++ would
be a bit more involved)


[Bug bootstrap/52887] Bootstrap on AIX failure: Undefined symbol: .std::functionvoid (std::__regex::_PatternCursor const, std::__regex::_Results)::function(std::functionvoid (std::__regex::_Patte

2012-05-10 Thread skunk at iskunk dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52887

--- Comment #5 from Daniel Richard G. skunk at iskunk dot org 2012-05-10 
22:04:26 UTC ---
(In reply to comment #3)
 does adding this instantiation to libstdc++-v3/src/c++11/regex.cc help?

Apologies Jonathan, I didn't see your comment before submitting my attachment.

Preliminary results are that the instantiation allows the link to proceed. This
was in a tree where the error had already occurred, however, so not the best
test. I've started a new build, with the change in from the beginning, that
should hopefully answer the question definitively by tomorrow.


[Bug bootstrap/52887] Bootstrap on AIX failure: Undefined symbol: .std::functionvoid (std::__regex::_PatternCursor const, std::__regex::_Results)::function(std::functionvoid (std::__regex::_Patte

2012-04-10 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52887

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org 2012-04-10 
09:12:39 UTC ---
we might need an explicit instantiation of that type in libstdc++.so, I'll
investigate