From: Maho NAKATA on
From: Jan Henrik Sylvester <me(a)janh.de>
Subject: Re: FreeBSD Port: octave-3.2.2_5
Date: Tue, 15 Sep 2009 00:39:41 +0200

> Maho NAKATA wrote:
>> From: Joey Mingrone <joey at mingrone.org>
>
>>> I'm having some trouble upgrading this port.
>>> % uname -a
>>> FreeBSD ... 7.2-RELEASE FreeBSD 7.2-RELEASE #1: Wed May 6 12:48:08 ...
>>> i386
>>> Here's the error in the build:
>>> making gendoc.cc
>>> g++44 -O2 -fno-strict-aliasing -pipe -I/usr/local/include
>>> -I/usr/local/include -o gendoc gendoc.cc -L/usr/local/lib -pthread
>>> making DOCSTRINGS
>>> /libexec/ld-elf.so.1: /usr/lib/libstdc++.so.6: version GLIBCXX_3.4.11
>>> required by ./gendoc not found
>
>> Hi Joey, I also noticed that Gerald has updated GCC43 to GCC44.
>> you should recompile all ports...
>> thanks
>
> I hit the same error on 7.2-RELEASE. I did recompile all Fortran
> dependencies with gcc44 and removed gcc43, still the error persists.
>
> Having recompiled just gendoc.cc with gcc42 from base, I was able to
> finish the build, but running octave does not work, either:
>
> /libexec/ld-elf.so.1: /usr/lib/libstdc++.so.6: version GLIBCXX_3.4.11
> required by /usr/local/lib/octave-3.2.2/liboctinterp.so not found
>
> Since liboctinterp.so was compiled with gcc44 and not with gcc from
> base, I guess it should not try to load /usr/lib/libstdc++.so.6 but
> /usr/local/lib/gcc44/libstdc++.so.6 -- or am I wrong?
>
> Any idea besides recompiling "all ports"? I really do not see the
> point in that, since nothing but the Fortran ports should use
> gcc44. Maybe, I do not understand the dynamic linking with multiple
> gcc versions involved after all.
>
> Cheers,
> Jan Henrik

Hi Jan,

I think there is no better way to do recomple whole ports :-O
I guess that's why gerald@ did before the ports freeze and we will
have a newer (better bug free, I believe) FORTRAN compiler.

Best,
-- Nakata Maho http://accc.riken.jp/maho/ , http://ja.openoffice.org/
Nakata Maho's PGP public keys: http://accc.riken.jp/maho/maho.pgp.txt
_______________________________________________
freebsd-ports(a)freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscribe(a)freebsd.org"
From: Jan Henrik Sylvester on
Maho NAKATA wrote:
> From: Jan Henrik Sylvester <me(a)janh.de>
>> Maho NAKATA wrote:
>>> From: Joey Mingrone <joey at mingrone.org>
>>>> I'm having some trouble upgrading this port.
>>>> % uname -a
>>>> FreeBSD ... 7.2-RELEASE FreeBSD 7.2-RELEASE #1: Wed May 6 12:48:08 ...
>>>> i386
>>>> Here's the error in the build:
>>>> making gendoc.cc
>>>> g++44 -O2 -fno-strict-aliasing -pipe -I/usr/local/include
>>>> -I/usr/local/include -o gendoc gendoc.cc -L/usr/local/lib -pthread
>>>> making DOCSTRINGS
>>>> /libexec/ld-elf.so.1: /usr/lib/libstdc++.so.6: version GLIBCXX_3.4.11
>>>> required by ./gendoc not found
>>> Hi Joey, I also noticed that Gerald has updated GCC43 to GCC44.
>>> you should recompile all ports...
>>> thanks
>> I hit the same error on 7.2-RELEASE. I did recompile all Fortran
>> dependencies with gcc44 and removed gcc43, still the error persists.
>>
>> Having recompiled just gendoc.cc with gcc42 from base, I was able to
>> finish the build, but running octave does not work, either:
>>
>> /libexec/ld-elf.so.1: /usr/lib/libstdc++.so.6: version GLIBCXX_3.4.11
>> required by /usr/local/lib/octave-3.2.2/liboctinterp.so not found
>>
>> Since liboctinterp.so was compiled with gcc44 and not with gcc from
>> base, I guess it should not try to load /usr/lib/libstdc++.so.6 but
>> /usr/local/lib/gcc44/libstdc++.so.6 -- or am I wrong?
>>
>> Any idea besides recompiling "all ports"? I really do not see the
>> point in that, since nothing but the Fortran ports should use
>> gcc44. Maybe, I do not understand the dynamic linking with multiple
>> gcc versions involved after all.

> I think there is no better way to do recomple whole ports :-O
> I guess that's why gerald@ did before the ports freeze and we will
> have a newer (better bug free, I believe) FORTRAN compiler.

After running 'ldconfig /usr/local/lib/gcc44/ /usr/local/lib/', I was
able to run octave. Actually, I am really not sure what I am doing here.
Do you really think recompiling all ports would cure my system or is
octave simply looking at the wrong directories for libraries?

Thanks,
Jan Henrik
_______________________________________________
freebsd-ports(a)freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscribe(a)freebsd.org"
From: Maho NAKATA on
From: Jan Henrik Sylvester <me(a)janh.de>
Subject: Re: FreeBSD Port: octave-3.2.2_5
Date: Tue, 15 Sep 2009 11:46:15 +0200

> Maho NAKATA wrote:
>> From: Jan Henrik Sylvester <me(a)janh.de>
>>> Maho NAKATA wrote:
>>>> From: Joey Mingrone <joey at mingrone.org>
>>>>> I'm having some trouble upgrading this port.
>>>>> % uname -a
>>>>> FreeBSD ... 7.2-RELEASE FreeBSD 7.2-RELEASE #1: Wed May 6 12:48:08 ...
>>>>> i386
>>>>> Here's the error in the build:
>>>>> making gendoc.cc
>>>>> g++44 -O2 -fno-strict-aliasing -pipe -I/usr/local/include
>>>>> -I/usr/local/include -o gendoc gendoc.cc -L/usr/local/lib -pthread
>>>>> making DOCSTRINGS
>>>>> /libexec/ld-elf.so.1: /usr/lib/libstdc++.so.6: version GLIBCXX_3.4.11
>>>>> required by ./gendoc not found
>>>> Hi Joey, I also noticed that Gerald has updated GCC43 to GCC44.
>>>> you should recompile all ports...
>>>> thanks
>>> I hit the same error on 7.2-RELEASE. I did recompile all Fortran
>>> dependencies with gcc44 and removed gcc43, still the error persists.
>>>
>>> Having recompiled just gendoc.cc with gcc42 from base, I was able to
>>> finish the build, but running octave does not work, either:
>>>
>>> /libexec/ld-elf.so.1: /usr/lib/libstdc++.so.6: version GLIBCXX_3.4.11
>>> required by /usr/local/lib/octave-3.2.2/liboctinterp.so not found
>>>
>>> Since liboctinterp.so was compiled with gcc44 and not with gcc from
>>> base, I guess it should not try to load /usr/lib/libstdc++.so.6 but
>>> /usr/local/lib/gcc44/libstdc++.so.6 -- or am I wrong?
>>>
>>> Any idea besides recompiling "all ports"? I really do not see the
>>> point in that, since nothing but the Fortran ports should use
>>> gcc44. Maybe, I do not understand the dynamic linking with multiple
>>> gcc versions involved after all.
>
>> I think there is no better way to do recomple whole ports :-O
>> I guess that's why gerald@ did before the ports freeze and we will
>> have a newer (better bug free, I believe) FORTRAN compiler.
>
> After running 'ldconfig /usr/local/lib/gcc44/ /usr/local/lib/', I was
> able to run octave. Actually, I am really not sure what I am doing
> here. Do you really think recompiling all ports would cure my system
> or is octave simply looking at the wrong directories for libraries?
>
> Thanks,
> Jan Henrik
>
I don't know :-( Just for sure.

-- Nakata Maho http://accc.riken.jp/maho/ , http://ja.openoffice.org/
Nakata Maho's PGP public keys: http://accc.riken.jp/maho/maho.pgp.txt
_______________________________________________
freebsd-ports(a)freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscribe(a)freebsd.org"
From: Christoph Moench-Tegeder on
## Jan Henrik Sylvester (me(a)janh.de):

> >> Here's the error in the build:
> >> making gendoc.cc
> >> g++44 -O2 -fno-strict-aliasing -pipe -I/usr/local/include
> >> -I/usr/local/include -o gendoc gendoc.cc -L/usr/local/lib -pthread
> >> making DOCSTRINGS
> >> /libexec/ld-elf.so.1: /usr/lib/libstdc++.so.6: version GLIBCXX_3.4.11
> >> required by ./gendoc not found
> > Hi Joey, I also noticed that Gerald has updated GCC43 to GCC44.
> > you should recompile all ports...
> > thanks
> I hit the same error on 7.2-RELEASE. I did recompile all Fortran
> dependencies with gcc44 and removed gcc43, still the error persists.

The power of versioned symbols...
Try this on math/octave/Makefile

--- Makefile.orig 2009-09-16 20:34:05.000000000 +0200
+++ Makefile 2009-09-16 20:33:14.000000000 +0200
@@ -76,12 +76,12 @@
PLIST_SUB= OCTAVE_VERSION=${OCTAVE_VERSION} GNU_HOST=${GNU_HOST}
INCLUDES= -I${LOCALBASE}/include
MAKE_ENV+= CPPFLAGS="${CPPFLAGS} ${INCLUDES}" \
- LDFLAGS="${LDFLAGS} -L${LOCALBASE}/lib ${PTHREAD_LIBS}"
+ LDFLAGS="${LDFLAGS} -L/usr/local/lib/gcc44 -Wl,-rpath /usr/local/lib/gcc44 -L${LOCALBASE}/lib ${PTHREAD_LIBS}"
CFLAGS+= ${INCLUDES}
CXXFLAGS+= ${INCLUDES}
CPPFLAGS+= ${INCLUDES}
CONFIGURE_ENV+= GPERF="${LOCALBASE}/bin/gperf" \
- LDFLAGS="${LDFLAGS} -L${LOCALBASE}/lib ${PTHREAD_LIBS}" \
+ LDFLAGS="${LDFLAGS} -L/usr/local/lib/gcc44 -Wl,-rpath /usr/local/lib/gcc44 -L${LOCALBASE}/lib ${PTHREAD_LIBS}" \
CC="${CC}" \
CXX="${CXX}" \
TERMIOS_H="termios.h"

This makes octave build, but I'm not sure if it breaks other things...
Note the hardcoded gcc44 paths... there must be a better way.

Regards,
Christoph

--
Spare Space
_______________________________________________
freebsd-ports(a)freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscribe(a)freebsd.org"