pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

pkg/43923: [textproc/py-4Suite] build error on Linux (CentOS)



>Number:         43923
>Category:       pkg
>Synopsis:       [textproc/py-4Suite] build error on Linux (CentOS)
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Sep 28 23:20:01 +0000 2010
>Originator:     Youssef Ghorbal
>Release:        CentOS 5
>Organization:
Institut Pasteur
>Environment:
Linux 2.6.18-164.11.1.el5 #1 SMP Wed Jan 20 07:32:21 EST 2010 x86_64 GNU/Linux
>Description:
The building of py-4Suite on Linux (CentOS 5) failes with this error message : 
Fatal Python error: Interpreter not initialized (version mismatch?)

After some digging, it appears that le ld linker links the shared libraries 
(EscapeQuotesc.so... etc) against the static libpython that is in 
/opt/pkg/lib/python2.6/config.

The ld man page states that the linker will look for Libraires specified with 
-L in the order of their apperience in the command line. And in fact the -L 
/opt/pkg/lib/python2.6/config comes before -L /opt/pkg/lib (where the 
libpython2.6.so lies)

The -L opt/pkg/lib/python2.6/config is added in the buildlink3.mk file of the 
python2.6 package (line 16) : BUILDLINK_LIBDIRS.python26+=    
lib/python2.6/config

>How-To-Repeat:
build textproc/py-4Suite on a Linux (CentOS) box
>Fix:
Avoid static linking... knowing that :
- GCC and LD does not seem to provide any way to force linking Dynamically Vs 
Staticly (even -Bdynamic does not have any effect)
- Commenting line 16 in buildlink3.mk make things work but it's not a "real" 
solution. Some scenarios need to link against the static libpython and this 
trick disable this ability.
- Reorder the option line to make sure that -L opt/pkg/lib comes before -L 
opt/pkg/lib/python2.6/config. This works fine (tested "by hand") but there is 
no way to put it in the pkgsrc way (in the Makefile or in the mk.conf)
- Do some BUILDLINK_TRANSFORM magic in the Makefile of py-4Suite but this will 
be python version specific and does not seem to work (not taken into effect)



Home | Main Index | Thread Index | Old Index