Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Was macht libbdf in Programmen wie MariaDB
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German)
View previous topic :: View next topic  
Author Message
guru meditation
n00b
n00b


Joined: 18 Mar 2018
Posts: 33
Location: Planet Earth

PostPosted: Tue Aug 13, 2019 8:17 am    Post subject: Was macht libbdf in Programmen wie MariaDB Reply with quote

Nach langer Zeit habe ich mal wieder MySQL/MariaDB 10.4 von den Sourcen kompiliert (ohne Emerge), der Einfachheit halber auf einen anderen Rechner gezogen und prompt startet das Teil nicht wegen:

/opt/mysql/bin/my_print_defaults: error while loading shared libraries: libbfd-2.32.0.gentoo-sys-libs-binutils-libs-st-def.so: cannot open shared object file: No such file or directory

Ist ja gut. Die letzte Version, die ich noch laufen habe, war MySQL 5.5. Da ging das ja auch ohne libbfd.

Was macht diese libbfd und wie kann ich MariaDB (und andere Programme) ohne deren Abhängigkeit erstellen?

Edit sacht: OK, man sollte -DNOT_FOR_DISTRIBUTION=OFF stellen. Nur habe ich bisher nicht einwandfrei feststellen können, ob mit "Distribution" nun das Kopieren auf einen anderen Rechner nicht funzt, oder der Weiterverkauf nicht gestattet ist.
Back to top
View user's profile Send private message
mike155
Veteran
Veteran


Joined: 17 Sep 2010
Posts: 1413
Location: Frankfurt, Germany

PostPosted: Fri Aug 16, 2019 1:35 pm    Post subject: Reply with quote

Es könnte sein, dass etwas an Deinem System nicht stimmt. Oder Du hast beim Compilieren / Installieren von MariaDB etwas verkehrt gemacht. Hast Du irgendwo einen Parameter, Prefix oder Pfad vergessen?

Wenn Du MariaDB von Hand installierst: hast Du die von Dir gewählten configure / cmake Parameter mit denen verglichen, die emerge verwendet? Warum installierst Du MariaDB eigentlich von Hand?

Auf meinem System gibt es eine libbfd.so. Sie wird von 'binutils-libs' installiert.
Code:
# find / -name "*libbfd*"
./usr/lib64/libbfd-2.32.0.gentoo-sys-libs-binutils-libs-st-def.so
./usr/lib64/libbfd.so
./usr/lib64/binutils/x86_64-pc-linux-gnu/2.32/libbfd.so
./usr/lib64/binutils/x86_64-pc-linux-gnu/2.32/libbfd-2.32.0.gentoo-sys-devel-binutils-st.so
...
# qfile /usr/lib64/libbfd.so
sys-libs/binutils-libs (/usr/lib64/libbfd.so)

Es gibt auch einen Eintrag in den MariaDB Changelogs:
Quote:
Revision #3325 Tue 2012-03-13

alternative method of resolving addresses for safemalloc and crash handler. don't link with libbfd, exec addr2line, if it's available at run time

Code:
# find . -name "*addr2line*"
./usr/bin/x86_64-pc-linux-gnu-addr2line
./usr/bin/addr2line
./usr/bin/eu-addr2line
./usr/x86_64-pc-linux-gnu/bin/addr2line
./usr/x86_64-pc-linux-gnu/binutils-bin/2.32/addr2line
...
# qfile ./usr/x86_64-pc-linux-gnu/binutils-bin/2.32/addr2line
sys-devel/binutils (/usr/x86_64-pc-linux-gnu/binutils-bin/2.32/addr2line)

addr2line wird von 'binutils' installiert.
Back to top
View user's profile Send private message
guru meditation
n00b
n00b


Joined: 18 Mar 2018
Posts: 33
Location: Planet Earth

PostPosted: Sat Aug 17, 2019 2:11 am    Post subject: Reply with quote

Erstdmal schönen Dank für die Antwort.

Die „Suchmaschinen“ finden mir entweder MariaDB oder NOT_FOR_DISTRUBUTION – das ist doch Müll.

Worauf es mir ankommt ist Portabilität. Wenn ein Server abschmiert, möchte ich nicht einen halben Tag Gentoo erstellen, sondern ziehe mir ein Image drauf und den fertigen Apache/MySQL. Zudem finde ich es praktisch, wenn der Mehrkerner zu Hause auch was zu tun bekommt und der Webserver sch um die Websites kümmern kann.

Zum eigentlichen Problem: Der Schalter NOT_FOR_DISTRIBUTION muß in der Regel auf OFF stehen, dann verlinkt der Compiler auch keine Libs vom binutil:
Code:
linux-vdso.so.1
libpthread.so.0
liblzma.so.5
libbz2.so.1
libaio.so.1
libcrypt.so.1
libdl.so.2
libstdc++.so.6
libm.so.6
libgcc_s.so.1
libc.so.6
/lib64/ld-linux-x86-64.so.2


Damit ist MariaDB auch mit anderen Linux-Systemen kompatikbel bzw. portierbar.

Der einzige Hinweis im Quelltext von MariaDB auf eine nicht kompatible Lizenz ist das Plugin für das Amazon Web Services Key Management:
Quote:
AWS SDK has Apache 2.0 License which is not complatible with GPLv2. Set -DNOT_FOR_DISTRIBUTION=ON if you need this plugin


Für Bibliotheken unter GPL gibt es eigentlich eine Linking Exception, daher kann ich mir nur vorstellen, daß die Beschränkung der Portierbarkeit auf GPL-verlinkte Libs was mit MySQL/MariaDB zu tun hat. Die Clientlib für MySQL 3 stand noch unter GPL und durfte mit eigenen (closed sourced) Programmen vertrieben werden, die Version 5 wieder nicht.

Zur libbfd steht im entsprechenden (englischsprachigen) Wiki-Artikel:
Quote:
BFD's main clients are the GNU Assembler (GAS), GNU Linker (GLD), and other GNU Binary Utilities ("binutils") tools, and the GNU Debugger (GDB). As a result, BFD is not distributed separately, but is always included with releases of binutils and GDB. Nevertheless, BFD is a critical component in the use of GNU tools for embedded systems development.


Und wenn die auf jedem Linux-System anders heißt, sind damit verlinkte Programme nicht portabel. Ob das jetzt zu 100% mit dem genannten Schalter in MariaDB zu tun hat, kann ich allerdings nicht garantieren.
Back to top
View user's profile Send private message
firefly
Advocate
Advocate


Joined: 31 Oct 2002
Posts: 4472

PostPosted: Sat Aug 17, 2019 7:14 am    Post subject: Reply with quote

guru meditation wrote:

Worauf es mir ankommt ist Portabilität. Wenn ein Server abschmiert, möchte ich nicht einen halben Tag Gentoo erstellen, sondern ziehe mir ein Image drauf und den fertigen Apache/MySQL.

Öhm wieso erstellst du nicht ein image deiner gentoo installation (inklusive apache und mysql/mariadb). Dann brauchst du nichts händisch zu kompilieren/zu installieren (an portage vorbei).
_________________
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
Back to top
View user's profile Send private message
guru meditation
n00b
n00b


Joined: 18 Mar 2018
Posts: 33
Location: Planet Earth

PostPosted: Sat Aug 17, 2019 8:34 am    Post subject: Reply with quote

Das IMage liegt beim Serveranbieter, darauf habe ich keinen Einfluß.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum