-
Notifications
You must be signed in to change notification settings - Fork 54
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Build the MariaODBC driver as a module #38
base: master
Are you sure you want to change the base?
Conversation
Some people do link against odbc drivers directly to remove overhead introduced by a DM. Thus I don't want to remove SONAME export and inclined to reject this PR. |
Hmmm, my instinct tells me that soname-less libraries have implicit "soname" equal to their filename. The soname is only used to write a different filename into the executable header than the filename from the linker. And I've just verified this. For example, a very simply test that uses a symbol from the library (wrongly, of course),
Will link with the library without explicit soname.
So my commit message is incorrect. The explicit soname set to the filename (unversioned) is superfluous and unnecessary in all use-cases. You can also see this in the manpage of ld(1)
|
I've corrected the commit message. For our packaging, the presence of a soname breaks some automatic packaging checks. |
When built as a module instead of a shared library, the library is no longer exporting an unversioned soname. Building the library with an unversioned soname is superfluous as the linker will use the filename for linking. The soname is only necessary when the library linked during build has different filename than the library to be used at runtime.
c086cfd
to
fcb9a5f
Compare
c65037c
to
fe23856
Compare
376a9b0
to
a315872
Compare
e4b7741
to
373ade1
Compare
f39215a
to
87072ef
Compare
de28bbd
to
1708881
Compare
ab96138
to
9209023
Compare
bce19b5
to
86d602d
Compare
952f4bf
to
1598057
Compare
When built as a module instead of a shared library, the library is
no longer exporting an unversioned soname. Since this is library is
only meant to be dynamically loaded by the ODBC manager, the soname
is unused anyway.
objdump -x libmaodbc.so | grep SONAME