[patch] libcc1: dynamic load versioned library

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

[patch] libcc1: dynamic load versioned library

Hector Oron
Hello,

 I believe libcc1 is versioned library therefore, it should dlopen on
libcc1.so.0 instead libcc1.so.
 The patch should be applied to master and 7.9 branch.

Héctor Orón Martínez

    * include/gcc-c-interface.h (gcc_c_context): load libcc1 versioned library

--- gdb-7.9.orig/include/gcc-c-interface.h
+++ gdb-7.9/include/gcc-c-interface.h
@@ -197,7 +197,7 @@ struct gcc_c_context
 /* The name of the .so that the compiler builds.  We dlopen this
    later.  */

-#define GCC_C_FE_LIBCC libcc1.so
+#define GCC_C_FE_LIBCC libcc1.so.0

 /* The compiler exports a single initialization function.  This macro
    holds its name as a symbol.  */

Regards,
--
 Héctor Orón  -.. . -... .. .- -.   -.. . ...- . .-.. --- .--. . .-.
Reply | Threaded
Open this post in threaded view
|

Re: [patch] libcc1: dynamic load versioned library

Mark Kettenis
> Date: Tue, 24 Mar 2015 17:07:00 +0100
> From: Hector Oron <[hidden email]>
>
> Hello,
>
>  I believe libcc1 is versioned library therefore, it should dlopen on
> libcc1.so.0 instead libcc1.so.
>  The patch should be applied to master and 7.9 branch.

And what happens if the major version of the library is bumped?

> Héctor Orón Martínez
>
>     * include/gcc-c-interface.h (gcc_c_context): load libcc1 versioned library
>
> --- gdb-7.9.orig/include/gcc-c-interface.h
> +++ gdb-7.9/include/gcc-c-interface.h
> @@ -197,7 +197,7 @@ struct gcc_c_context
>  /* The name of the .so that the compiler builds.  We dlopen this
>     later.  */
>
> -#define GCC_C_FE_LIBCC libcc1.so
> +#define GCC_C_FE_LIBCC libcc1.so.0
>
>  /* The compiler exports a single initialization function.  This macro
>     holds its name as a symbol.  */
>
> Regards,
> --
>  Héctor Orón  -.. . -... .. .- -.   -.. . ...- . .-.. --- .--. . .-.
>
>
Reply | Threaded
Open this post in threaded view
|

Re: [patch] libcc1: dynamic load versioned library

Hector Oron
Hello,

2015-03-24 17:33 GMT+01:00 Mark Kettenis <[hidden email]>:
>> From: Hector Oron <[hidden email]>
>>
>> Hello,
>>
>>  I believe libcc1 is versioned library therefore, it should dlopen on
>> libcc1.so.0 instead libcc1.so.
>>  The patch should be applied to master and 7.9 branch.
>
> And what happens if the major version of the library is bumped?

Does that mean that there is some ABI break which might imply or not
newer changes on GDB side?

>> Héctor Orón Martínez
>>
>>     * include/gcc-c-interface.h (gcc_c_context): load libcc1 versioned library
>>
>> --- gdb-7.9.orig/include/gcc-c-interface.h
>> +++ gdb-7.9/include/gcc-c-interface.h
>> @@ -197,7 +197,7 @@ struct gcc_c_context
>>  /* The name of the .so that the compiler builds.  We dlopen this
>>     later.  */
>>
>> -#define GCC_C_FE_LIBCC libcc1.so
>> +#define GCC_C_FE_LIBCC libcc1.so.0
>>
>>  /* The compiler exports a single initialization function.  This macro
>>     holds its name as a symbol.  */
>>
>> Regards,
>> --
>>  Héctor Orón  -.. . -... .. .- -.   -.. . ...- . .-.. --- .--. . .-.
>>
>>



--
 Héctor Orón  -.. . -... .. .- -.   -.. . ...- . .-.. --- .--. . .-.
Reply | Threaded
Open this post in threaded view
|

Re: [patch] libcc1: dynamic load versioned library

Mike Frysinger
In reply to this post by Mark Kettenis
On 24 Mar 2015 17:33, Mark Kettenis wrote:
> From: Hector Oron <[hidden email]>
> >  I believe libcc1 is versioned library therefore, it should dlopen on
> > libcc1.so.0 instead libcc1.so.
> >  The patch should be applied to master and 7.9 branch.
>
> And what happens if the major version of the library is bumped?

then we need to handle it ?  there's no guarantee the ABI is compatible ...
if it was, then it probably wouldn't have changed SONAMEs.

usually the libxxx.so symlink isn't generated on runtime systems.  you need
to install extra dev packages to get it.  so loading the SONAME directly is
almost always the right thing.
-mike

signature.asc (836 bytes) Download Attachment