Hi Jürgen:
OK I spent some time digging around and maybe I understand a bit more.
Based on the details below it is my understanding that 
        •gettext was built using libstdc++ 
        •but GNU APL was built using libc++
And so we have incompatible binaries.

On OS X 10.8 I had previously, installed gettext which includes libintl in 
/usr/local/lib so I could test NLS
I now know that gettext and libintl was built then with libstdc++.
Why? Because I again  downloaded the source from GNU and grepped for libstdc++ 
and found it.
Whereas grepping for libc++ was not found.

However here is the Xcode setting for  CLANG_CXX_LIBRARY = libc++
and this is what GNU APL was built with- i.e. Apple's default.

The interesting question is what to do about it?
(1) Change Xcode setting and thus diverge from Apple default?
(2) Build gettext with libc++ - but should that not come from the maintainer?
    (I certainly don't have enough deep understanding to go fiddling with the 
gettext auto tools stuff)
(3) For GNU APL on Macintosh ./configure --without-nls 

For now I shall follow (3) but in the future it might be nice to allow NLS 
support.

Not totally confident that I have analyzed this correctly. What do you think?

respect….

Peter

P.S. Now leaving this rabbit trail and going back to nabla and Editor 1

=============== supporting evidence ============
Here are some more details FWIW
using  previously installed get text (in March)
Using a fresh SVN co and then ./configure,  the terminal log showed the 
following
…
checking whether NLS is requested… yes
…
checking for GNU gettext in libintl... yes <<<<=====
checking whether to use NLS… yes   <<<<=====
So problem because of incompatible binaries
(Back in March I didn't understand the problem and just reconfigured 
--without-nls)
Now the fresh SVN co showed up the issue again and forced me to try to 
understand it.

On OS X 10.9 I have never installed gettext and libintl.
Following the same steps as above the terminal log shows
…
checking whether NLS is requested… yes
…
checking for GNU gettext in libintl... no <<<<=====
checking whether to use NLS… no    <<<=======
…
So no problem because no NLS

On 2014-05-04, at 7:13 AM, Juergen Sauermann <[email protected]> 
wrote:
> Hi Peter,
> 
> looks like all linker messages point to libintl. We are checking for the
> presence of libintl_gettext in configure.ac and that check seem to pass (your 
> config.log tells more).
> And then the linker (which is the compiler under a different name) complains.
> That suggests that the compiler used by ./configure us different from the 
> compiler used in make.
> This can often be cured by eg.
> 
> CXX=mycompiler ./configure
> 
> see INSTALL for more details. An alternative could be ./configure 
> --without_readline or playing around with
> --with-libintl-prefix= if you have both library variants installed.
> 
> /// Jürgen
> 
> 
> On 05/03/2014 11:53 PM, Peter Teeson wrote:
>> Sigh…..
>> Tracking down something in nabla I decided to start absolutely clean and did 
>> a new SVN checkout.
>> I did the usual ./configure followed by make and got this:
>> …..
>> Undefined symbols for architecture x86_64:
>>   "_libintl_bindtextdomain", referenced from:
>>       _main in apl-main.o
>>   "_libintl_gettext", referenced from:
>>       Command::process_line(UCS_string&) in apl-Command.o
>>       Command::cmd_CHECK(std::ostream&) in apl-Command.o
>>       Command::cmd_DROP(std::ostream&, std::vector<UCS_string, 
>> std::allocator<UCS_string> > const&) in apl-Command.o
>>       Command::cmd_HELP(std::ostream&) in apl-Command.o
>>       Command::cmd_HOST(std::ostream&, UCS_string const&) in apl-Command.o
>>       Command::cmd_IN(std::ostream&, std::vector<UCS_string, 
>> std::allocator<UCS_string> >&, bool) in apl-Command.o
>>       Command::cmd_LIB(std::ostream&, UCS_string const&) in apl-Command.o
>>       ...
>>   "_libintl_setlocale", referenced from:
>>       Quad_NLT::Quad_NLT() in apl-SystemVariable.o
>>       Quad_NLT::assign(Value_P, char const*) in apl-SystemVariable.o
>>   "_libintl_textdomain", referenced from:
>>       _main in apl-main.o
>> ld: symbol(s) not found for architecture x86_64
>> clang: error: linker command failed with exit code 1 (use -v to see 
>> invocation)
>> 
>> The reason is this:
>> "There are two implementations of the standard C++ library available on OS 
>> X: libstdc++ and libc++. 
>>  They are not binary compatible.
>> On OS X 10.8 and earlier libstdc++ is chosen by default, on OS X 10.9 libc++ 
>> is chosen by default. To ensure compatibility add -stdlib=libstdc++ to the 
>> linking command."
>> 
>> I happen to be on 10.8 Mountain Lion. I know 10.9 has been out 6 months and 
>> I have been building on it as a test.
>> But there are still lots of people on 10.8.
>> 
>> Do you feel it's worthwhile to still support OS X less than 10.9?
>> 
>> respect….
>> 
>> Peter
>> 
> 

Reply via email to