Boost logo

Boost-Build :

From: Jonathan Y. Walther (Jonathan.Y.Walther_at_[hidden])
Date: 2006-02-02 12:18:04


Thanks for your very fast responses.

>> $ REGEX_INC=/sps_home/play/install/include/boost-1_33_1
>> $ REGEX_LIB=/sps_home/play/install/lib/libboost_regex-gcc-d.a
>> $ g++ -I$REGEX_INC -c sp20.cc -o sp20.o
>> $ g++ -o sp20 sp20.o $REGEX_LIB -lstdc++
>
>
>Do you need that -lstdc++ there? Could it be picking up the wrong one?

No, I did not need -lstdc++. But removing it did not change the behavior.

$ REGEX_LIB=/mnt/60GB/sps_home/play/install/lib/libboost_regex-gcc-d.a
$ REGEX_INC=/mnt/60GB/sps_home/play/install/include/boost-1_33_1
$ g++ -I$REGEX_INC -c sp20.cc -o sp20.o
$ ./sp20
Segmentation fault

<snip>

>> Based on some googling, it does not appear that this is a known
>> problem, and I strongly suspect that the problem relates to my
>> particular installation, but cannot figure out what to try next.
>
>
>No it's not a known problem and we regularly build and test with >gcc-4.0.x,
>it leads me to suspect that there is some kind of issue with your >libstdc++
>install, could you try a short test program that uses std::collate?
>Something like:
>
>
>#include <locale>
>
>
>int main()
>{
> std::locale l;
> bool b = l("a", "A");
> return b;
>}

No, this does not work:

$ cat jmTest.cc
#include <locale>
int main()
{
  std::locale l;
  bool b = l("a", "A");
  return b;
}

$ g++ -I$REGEX_INC -c jmTest.cc -o jmTest.o
jmTest.cc: In function 'int main()':
jmTest.cc:5: error: no match for call to '(std::locale) (const char [2], const char [2])'

Or, more to the point:

$ g++ -c jmTest.cc -o jmTest.o
jmTest.cc: In function 'int main()':
jmTest.cc:5: error: no match for call to '(std::locale) (const char [2], const char [2])'

I am not familiar with the locale include, but I gather that this should
work, and the fact that is does not indicates problems with my
installation of gcc. Looks like I need to run the gcc test suite. If
I were to guess, it seems like there are multiple versions of this
include, and perhaps gcc4 is finding the wrong one. And somehow I
managed to confuse both linux systems that I installed it on.

If anyone has any further suggestions, I would be happy to hear them,
but it seems like a compiler issue.

Thanks again,

-- 
Jonathan Y. Walther
Jonathan.Y.Walther_at_[hidden]

Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk