Bug 38290 - Потеряно имя библиотеки
Summary: Потеряно имя библиотеки
Status: CLOSED NOTABUG
Alias: None
Product: Sisyphus
Classification: Development
Component: python3-dev (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Grigory Ustinov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-03-27 22:48 MSK by Andrey Cherepanov
Modified: 2020-03-28 11:29 MSK (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andrey Cherepanov 2020-03-27 22:48:16 MSK
3.7
$ grep ^Libs: /usr/lib64/pkgconfig/python3.pc
Libs: -lpython3.7m

3.8
$ grep ^Libs: /usr/lib64/pkgconfig/python3.pc
Libs:

Что приводит к 
verify-elf: ERROR: ./usr/lib64/libpyside2.cpython-38.so.5.12.6: undefined symbol: _Py_FalseStruct
Comment 1 Grigory Ustinov 2020-03-28 11:20:17 MSK
Принято.
Comment 2 Grigory Ustinov 2020-03-28 11:25:25 MSK
git diff 3.7.4-alt3:python3/Misc/python.pc.in 3.8.1-alt1:python3/Misc/python.pc.in

--- a/python3/Misc/python.pc.in
+++ b/python3/Misc/python.pc.in
@@ -5,9 +5,9 @@ libdir=@libdir@
 includedir=@includedir@
 
 Name: Python
-Description: Python library
-Requires: 
+Description: Build a C extension for Python
+Requires:
 Version: @VERSION@
 Libs.private: @LIBS@
-Libs: -L${libdir} -lpython@VERSION@@ABIFLAGS@
+Libs:
 Cflags: -I${includedir}/python@VERSION@@ABIFLAGS@
Comment 3 Grigory Ustinov 2020-03-28 11:29:28 MSK
commit 0a8e57248b913851640c64375600f05157c997df
Author: Victor Stinner <vstinner@redhat.com>
Date:   Thu May 23 03:30:23 2019 +0200

    bpo-36721: Add --embed option to python-config (GH-13500)
    
    To embed Python into an application, a new --embed option must be
    passed to "python3-config --libs --embed" to get "-lpython3.8" (link
    the application to libpython). To support both 3.8 and older, try
    "python3-config --libs --embed" first and fallback to "python3-config
    --libs" (without --embed) if the previous command fails.
    
    Add a pkg-config "python-3.8-embed" module to embed Python into an
    application: "pkg-config python-3.8-embed --libs" includes
    "-lpython3.8".  To support both 3.8 and older, try "pkg-config
    python-X.Y-embed --libs" first and fallback to "pkg-config python-X.Y
    --libs" (without --embed) if the previous command fails (replace
    "X.Y" with the Python version).
    
    On the other hand, "pkg-config python3.8 --libs" no longer contains
    "-lpython3.8". C extensions must not be linked to libpython (except
    on Android, case handled by the script); this change is backward
    incompatible on purpose.
    
    "make install" now also installs "python-3.8-embed.pc".

diff --git a/Misc/python.pc.in b/Misc/python.pc.in
index ae698674bb..87e04decc2 100644
--- a/Misc/python.pc.in
+++ b/Misc/python.pc.in
@@ -5,9 +5,9 @@ libdir=@libdir@
 includedir=@includedir@
 
 Name: Python
-Description: Python library
-Requires: 
+Description: Build a C extension for Python
+Requires:
 Version: @VERSION@
 Libs.private: @LIBS@
-Libs: -L${libdir} -lpython@VERSION@@ABIFLAGS@
+Libs:
 Cflags: -I${includedir}/python@VERSION@@ABIFLAGS@