[issue15590] --libs is inconsistent for python-config --libs and pkgconfig python --libs

2019-05-31 Thread Ned Deily


Change by Ned Deily :


--
nosy: +vstinner

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue15590] --libs is inconsistent for python-config --libs and pkgconfig python --libs

2017-03-20 Thread Michael Haubenwallner

Changes by Michael Haubenwallner :


--
pull_requests: +652

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue15590] --libs is inconsistent for python-config --libs and pkgconfig python --libs

2015-02-12 Thread Tim Smith

Tim Smith added the comment:

On Darwin, it would be nice if LINKFORMODULE used -undefined dynamic_lookup 
instead of explicitly linking to a framework binary. Modules with explicit 
links to a framework cause segfaults when they are imported from a different, 
but compatible, framework interpreter -- i.e., building against the system 
Python 2.7 but importing from a user-installed Python 2.7 causes an immediate 
crash.

I'm a maintainer of Homebrew, a package manager for OS X, and I spend a lot of 
time tracking down and eliminating errant explicit framework links because they 
make packaging binaries much harder for us and cause crashes for users.

--
nosy: +tdsmith

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue15590
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue15590] --libs is inconsistent for python-config --libs and pkgconfig python --libs

2014-06-05 Thread Michael Haubenwallner

Michael Haubenwallner added the comment:

For AIX, with both these configure variants:
  $ configure --prefix=/prefix --enable-shared CC=gcc CXX=g++ OPT=
  $ configure --prefix=/prefix --enable-shared --without-computed-gotos 
CC=xlc_r CXX=xlC_r OPT=
the output changes like this:

   $ PKG_CONFIG_PATH=/prefix/lib/pkgconfig pkg-config --libs python-3.4
old: -L/prefix/lib -lpython3.4m
new: -L/prefix/lib -lpython3.4m 
-Wl,-bE:/prefix/lib/python3.4/config-3.4m/python.exp -lld

   $ /prefix/bin/python3.4-config --ldflags
old:  -L/prefix/lib -lintl -ldl -lm  -lpython3.4m -Wl,-bE:Modules/python.exp 
-lld
new: -Wl,-bI:/prefix/lib/python3.4/config-3.4m/python.exp



For Linux, with this configure variant:
  $ configure --prefix=/prefix --enable-shared CC=gcc CXX=g++
the output changes like this:

  $ PKG_CONFIG_PATH=/prefix/lib/pkgconfig pkg-config --libs python-3.4
old: -L/prefix/lib -lpython3.4m
new: -L/prefix/lib -lpython3.4m -Xlinker -export-dynamic

   $ /prefix/bin/python3.4-config --ldflags
old:   -L/prefix/lib -lpthread -ldl  -lutil -lm  -lpython3.4m -Xlinker 
-export-dynamic
new: # Yes, nothing. Not sure if python modules should have undefined python 
symbols, or link against libpython.so

Just found out that distutils.command.build_ext.get_libraries() does add 
libpython.so for Linux and similar (not Darwin and AIX).
Actually, distutils.command.build_ext.get_libraries() should add $LINKFORMODULE 
instead now, so LDSHARED does not need to carry.

More thoughts?  (will post results with --disable-shared as separate comment)

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue15590
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue15590] --libs is inconsistent for python-config --libs and pkgconfig python --libs

2014-06-05 Thread Michael Haubenwallner

Michael Haubenwallner added the comment:

Now for --disable-shared:

For AIX, with both these configure variants:
  $ configure --prefix=/prefix --disable-shared CC=gcc CXX=g++ OPT=
  $ configure --prefix=/prefix --disable-shared --without-computed-gotos 
CC=xlc_r CXX=xlC_r OPT=
the output changes like this:

   $ PKG_CONFIG_PATH=/prefix/lib/pkgconfig pkg-config --libs python-3.4
old: -L/prefix/lib -lpython3.4m
new: -L/prefix/lib -lpython3.4m 
-Wl,-bE:/prefix/lib/python3.4/config-3.4m/python.exp -lld

   $ /prefix/bin/python3.4-config --ldflags
old: -L/prefix/lib/python3.4/config-3.4m -L/prefix/lib -lintl -ldl -lm  
-lpython3.4m -Wl,-bE:Modules/python.exp -lld
new: -Wl,-bI:/prefix/lib/python3.4/config-3.4m/python.exp



For Linux, with this configure variant:
  $ configure --prefix=/prefix --enable-shared CC=gcc CXX=g++
the output changes like this:

  $ PKG_CONFIG_PATH=/prefix/lib/pkgconfig pkg-config --libs python-3.4
old: -L/prefix/lib -lpython3.4m
new: -L/prefix/lib -lpython3.4m -Xlinker -export-dynamic

   $ /prefix/bin/python3.4-config --ldflags
old: -L/prefix/lib/python3.4/config-3.4m -L/prefix/lib -lpthread -ldl  -lutil 
-lm  -lpython3.4m -Xlinker -export-dynamic
new: # Yes, nothing. 

And with --disable-shared, even distutils.command.build_ext.get_libraries() 
does *not* add libpython.so for Linux and similar, so python-shipped modules 
are linked with python symbols undefined now - but still as shared libraries.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue15590
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue15590] --libs is inconsistent for python-config --libs and pkgconfig python --libs

2014-06-05 Thread Michael Haubenwallner

Michael Haubenwallner added the comment:

Erm, the latter should read:
  For Linux, with this configure variant:
$ configure --prefix=/prefix --disable-shared CC=gcc CXX=g++


Now reading GNU ld manpage for Linux:

   $ PKG_CONFIG_PATH=/prefix/lib/pkgconfig pkg-config --libs python-3.4
 new: -L/prefix/lib -lpython3.4m -Xlinker -export-dynamic

ld(1), at '--export-dynamic', tells about '--dynamic-list=file' to export 
specific symbols only - which actually looks similar to '-bE:file' for AIX...

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue15590
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue15590] --libs is inconsistent for python-config --libs and pkgconfig python --libs

2014-06-04 Thread Michael Haubenwallner

Michael Haubenwallner added the comment:

So this diff - depending on issue#21660 - now drops showing any $LIBS from 
python-config, as python-modules usually do not link against any python-known 
libraries.

Instead, now there is a new configure variable LINKFORMODULE, which is shown by 
python-config --ldflags.

And $LINKFORSHARED is added to python.pc (for pkg-config).

Eventually, this allows to drop those Darwin hackery wrt. python-framework, as 
the python library isn't linked against the modules any more - but to 
PYTHONFRAMEWORK via LINKFORMODULE instead.

However, I don't have any Darwin around here: anyone?

For AIX, this looks good so far.

Thanks!

--
hgrepos: +250

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue15590
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue15590] --libs is inconsistent for python-config --libs and pkgconfig python --libs

2014-06-04 Thread Michael Haubenwallner

Changes by Michael Haubenwallner michael.haubenwall...@salomon.at:


--
keywords: +patch
Added file: http://bugs.python.org/file35485/32143cda4d80.diff

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue15590
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue15590] --libs is inconsistent for python-config --libs and pkgconfig python --libs

2014-06-04 Thread Ned Deily

Changes by Ned Deily n...@acm.org:


--
nosy: +ned.deily

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue15590
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue15590] --libs is inconsistent for python-config --libs and pkgconfig python --libs

2014-06-04 Thread Arfrever Frehtes Taifersar Arahesis

Arfrever Frehtes Taifersar Arahesis added the comment:

Michael Haubenwallner: Could you show output of 'python-config-3.5 --ldflags' 
and 'python-config-3.5 --libs' without and with this patch (on GNU/Linux and 
AIX)?

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue15590
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue15590] --libs is inconsistent for python-config --libs and pkgconfig python --libs

2014-06-03 Thread Michael Haubenwallner

Michael Haubenwallner added the comment:

Well, they should not be identical, as they are for different use cases.

pkg-config python is to build an application containing a python interpreter 
(like python$EXE):
 + Link against libpython.so. Additionally,
 + re-export symbols from libpython.so for the python-modules 
(platform-specific).
 = This is similar to build against any other library, thus using 'pkg-config 
python'.

python-config is to build a python-module (like 
build/lib.platform-pyver/*.so):
 + No need to link against libpython.so, instead
 + expect symbols from libpython.so to be available at runtime, platform 
specific either
 + as a list of symbols to import from the main executable (AIX), or
 + as undefined symbols at build-time (Linux, others), or
 = This is specific to python-modules, thus using 'python-config'.

--
nosy: +haubi

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue15590
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue15590] --libs is inconsistent for python-config --libs and pkgconfig python --libs

2014-06-03 Thread Arfrever Frehtes Taifersar Arahesis

Arfrever Frehtes Taifersar Arahesis added the comment:

They are not for different cases. Difference between is a result of the fact 
that they were implemented independently at different times.

Linking of extension modules against libpythonX.Y.so is a good idea anyway. It 
avoids build failure with LDFLAGS=-Wl,--no-undefined.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue15590
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue15590] --libs is inconsistent for python-config --libs and pkgconfig python --libs

2014-06-03 Thread Matthias Klose

Matthias Klose added the comment:

they are.  assume you build the zlib and elementtree extensions as builtins, 
then libs for an interpreter includes libz and libexpat, while they are not 
needed for extensions.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue15590
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue15590] --libs is inconsistent for python-config --libs and pkgconfig python --libs

2014-06-02 Thread Ned Deily

Changes by Ned Deily n...@acm.org:


--
versions: +Python 2.7, Python 3.4, Python 3.5 -Python 3.3

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue15590
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue15590] --libs is inconsistent for python-config --libs and pkgconfig python --libs

2012-08-08 Thread Matthias Klose

New submission from Matthias Klose:

seen with at least 2.7, 3.2 and 3.3:

$ python-config --libs
-lpthread -ldl -lutil -lm -lpython2.7

$ pkg-config python --static --libs
-lpthread -ldl -lutil -lpython2.7

python-config uses the SYSLIBS macro, while pkg-config uses the LIBS macro.

depending on what you want to do, both can be wrong or right:

 - to build an extension, LIBS should be used.

 - to link an embedded interpreter, SYSLIBS should be used,
   which might not be complete.
   Howver in this case MODLIBS is missing.

a patch should be easy once we can define the intended behaviour.

--
components: Build
keywords: needs review
messages: 167683
nosy: doko
priority: normal
severity: normal
status: open
title: --libs is inconsistent for python-config --libs and pkgconfig python 
--libs
type: behavior
versions: Python 3.3

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue15590
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue15590] --libs is inconsistent for python-config --libs and pkgconfig python --libs

2012-08-08 Thread Arfrever Frehtes Taifersar Arahesis

Arfrever Frehtes Taifersar Arahesis added the comment:

Behavior of 'pkg-config python' is more useful since without --static option 
only the set of directly needed libraries is returned.

In Python 3.3 or 3.4 --static option could be introduced in python-config and 
behavior without this option could be changed to match 'pkg-config python'.

--
nosy: +Arfrever

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue15590
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com