[adtools] Re: libstdc++-v3 Multilib Support

  • From: Trevor Scroggins <trevor.scroggins@xxxxxxxxx>
  • To: adtools@xxxxxxxxxxxxx
  • Date: Sat, 10 Jul 2010 15:14:54 -0700

Hi,

On Sat, Jul 10, 2010 at 1:35 PM, Trevor Scroggins
<trevor.scroggins@xxxxxxxxx> wrote:
>>> Some combinations will not link because of missing functions, e.g.
>>> -mcrt=clib2 -msoft-float can't find strtod(). These can either be
>>> fixed or ignored, depending on whether or not the SDK officially
>>> supports the multilib combination.

A little clarification: A small C++ program will not link because
libstd++ needs strtod:

#include <iostream>

int main()
{
  std::cout << "Hello, world!" << std::endl;
  return 0;
}

$ ppc-amigaos-g++ -mcrt=clib2 -msoft-float -o hello++ hello++.cpp
-lstdc++ -lgcc_eh
c:/gcc/ppc-amigaos/bin/../lib/gcc/ppc-amigaos/4.2.4/clib2/soft-float\libstdc++.a(c++locale.o):
In function `void std::__convert_to_v<double>(char const*, double&,
std::_Ios_Iostate&, int* const&)':
c:\Data\Source\adtools\trunk\gcc-build\cross-multilib-full\ppc-amigaos\clib2\soft-float\libstdc++-v3\src/c++locale.cc:96:
undefined reference to `strtod'
c:/gcc/ppc-amigaos/bin/../lib/gcc/ppc-amigaos/4.2.4/clib2/soft-float\libstdc++.a(c++locale.o):
In function `void std::__convert_to_v<float>(char const*, float&,
std::_Ios_Iostate&, int* const&)':
c:\Data\Source\adtools\trunk\gcc-build\cross-multilib-full\ppc-amigaos\clib2\soft-float\libstdc++-v3\src/c++locale.cc:62:
undefined reference to `strtod'
collect2: ld returned 1 exit status

> We don't have strtod() in SDK:clib2/lib/soft-float/libm.a. I'll look at clib2.

As far as I can tell, clib2 doesn't provide soft-float implementations
of its math functions.
Do all AmigaOS 4.x supported CPUs have hardware floating point? If
yes, then why provide mcrt=lib2/msoft-float on AmigaOS 4.x? We can ask
Olaf, but perhaps it was just to maintain build parity between
different platforms.

We can cheat and enable the floating point functions with
-DFLOATING_POINT_SUPPORT, but we'll need to provide the actual
implementation from a third-party library. I confess that I haven't
read all of the SDK documentation, so some of this may be covered
there.

Trev
-- 
______________________________________________________________________________
Amiga Development tools ML - //www.freelists.org/list/adtools
Homepage...................: http://www.sourceforge.net/projects/adtools
Listserver help............: mailto:adtools-request@xxxxxxxxxxxxx?Subject=HELP

Other related posts: