Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

OpenCASCADE marked broken

1 view
Skip to first unread message

Andrea Venturoli

unread,
Mar 23, 2010, 5:37:24 PM3/23/10
to p...@freebsd.org, thi...@freebsd.org, freebs...@freebsd.org
Just to let you know this used to work on 6.3, though I cannot test it
anymore now.

I can compile it without any problem on 7.2/i386, though I remove
"USE_FORTRAN=yes".

The latter is to avoid compilation with gcc4.4, which will lead to
incompatibilities with other libraries (such as boost) I use on a
project of mine.

bye
av.

Thierry Thomas

unread,
Apr 5, 2010, 6:26:08 PM4/5/10
to Andrea Venturoli, p...@freebsd.org, freebs...@freebsd.org
Le Mar 23 mar 10 à 22:37:24 +0100, Andrea Venturoli <m...@netfence.it>
écrivait :

It should be fixed now.

Actually, it used to work untill gcc-4.4.4.20100216. Gcc-44 is needed
because f77 has been removed from the base.

Since gcc-4.4.4.20100216, we got errors at linkage:

local symbol 0: discarded in section `.text._ZNSs12_...
local symbol 1: discarded in section `.text._ZNSs12_...
etc.

The OpenCASCADE port was built using devel/libtool22, and this port
installs a libtool file where LD and CC are hardcoded.

To fix OpenCASCADE, I had to link it with g++44, so I switched to the
included libtool.

I guess there might be a problem with devel/libtool22, but I don't dare
patching this beast: it could fix some ports, and break many others...

Regards,
--
Th. Thomas.

Andrea Venturoli

unread,
Apr 6, 2010, 2:14:57 AM4/6/10
to p...@freebsd.org, freebs...@freebsd.org, thi...@freebsd.org
On 04/06/10 00:26, Thierry Thomas wrote:
> Le Mar 23 mar 10 à 22:37:24 +0100, Andrea Venturoli<m...@netfence.it>
> écrivait :
>> Just to let you know this used to work on 6.3, though I cannot test it
>> anymore now.
>>
>> I can compile it without any problem on 7.2/i386, though I remove
>> "USE_FORTRAN=yes".
>>
>> The latter is to avoid compilation with gcc4.4, which will lead to
>> incompatibilities with other libraries (such as boost) I use on a
>> project of mine.
>
> It should be fixed now.
>
> Actually, it used to work untill gcc-4.4.4.20100216. Gcc-44 is needed
> because f77 has been removed from the base.

Are you sure OpenCASCADE requires f77?
I looked into the source and didn't find any file like "*.f" or "*.for",
although of course they might have other extension or be generated
during the build process.
Also I can confirm it compiles with the base system gcc, although I
don't remember if I had gcc44 installed at the time, so it might also be
it picked f77 from gcc44 anyway.

The whole point of the above is that, due to gcc44's libstdc++ recently
becoming incompatible with older versions, if you mix different g++
versions in the same project, you'll get "Undefined symbol" errors when
starting your executable.

In my case, I'm linking (amongst others) against Boost and OpenCASCADE,
so I need them to use the same compiler (and use that myself).

Again, this is not a problem with OpenCASCADE only, but potentially
affects any C++ library which is build with gcc44.

bye & Thanks
av.

Thierry Thomas

unread,
Apr 10, 2010, 10:20:40 AM4/10/10
to Andrea Venturoli, p...@freebsd.org, freebs...@freebsd.org
Le Mar 6 avr 10 à 8:14:57 +0200, Andrea Venturoli <m...@netfence.it>
écrivait :

> Are you sure OpenCASCADE requires f77?
> I looked into the source and didn't find any file like "*.f" or "*.for",
> although of course they might have other extension or be generated
> during the build process.
> Also I can confirm it compiles with the base system gcc, although I
> don't remember if I had gcc44 installed at the time, so it might also be
> it picked f77 from gcc44 anyway.

You're right: it builds succesfully in a tinderbox without USE_FORTRAN,
which is just searched by configure.
Should be some remaining of an older version...

> The whole point of the above is that, due to gcc44's libstdc++ recently
> becoming incompatible with older versions, if you mix different g++
> versions in the same project, you'll get "Undefined symbol" errors when
> starting your executable.
>
> In my case, I'm linking (amongst others) against Boost and OpenCASCADE,
> so I need them to use the same compiler (and use that myself).
>
>
>
> Again, this is not a problem with OpenCASCADE only, but potentially
> affects any C++ library which is build with gcc44.

True: that's why I think that libtool should'nt force $CC and $LD.

Best regards,
--
Th. Thomas.

0 new messages