Re: Problem with gkrellfire plugin

Jack Ostroff <[email protected]> Thu, 11 Apr 2019 16:19:19 -0400
Newsgroups gmane.comp.gnome.apps.gkrellm
Message-ID <[email protected]>
On 2019.04.11 13:20, Jack wrote:
> On 2019.04.11 04:37, Peter Humphrey wrote:
>> On Wednesday, 10 April 2019 23:58:26 BST you wrote:
>>> A gkrellm_init_plugin() function is supposed to be in each plugin =20
>>> so something is wrong with the gkrellfire plugin.  Maybe it is =20
>>> corrupted or the plugin has had symbols stripped.

[snip....]

Something is definitely strange.  If I unpack the source, and do "grep =20
init gkrellfire.c" I get

// All GKrellM plugins must have one global routine named init_plugin()
__declspec(dllexport) GkrellmMonitor =20
*gkrellm_init_plugin(win32_plugin_callbacks* calls)
GkrellmMonitor *gkrellm_init_plugin()

so the call is present.  Compiling is only two commands.  After the =20
first, "x86_64-pc-linux-gnu-gcc -O2 -pipe -fPIC `pkg-config gtk+-2.0 =20
--cflags`   -c -o gkrellfire.o gkrellfire.c" if I do "objdump -t =20
gkrellfire.o I  grep init" I get

00000000000018b0 g     F .text  0000000000000089 gkrellm_init_plugin

so the function is compiled into the .o file.  The second command is =20
"x86_64-pc-linux-gnu-gcc -O2 -pipe -fPIC `pkg-config gtk+-2.0 =20
--cflags`  -o gkrellfire.so -Wl,-O1 -Wl,--as-needed -shared `pkg-config =20
gtk+-2.0 --libs`" after which "objdump -t gkrellfire.so | grep init" =20
gives

0000000000001000 l    d  .init  0000000000000000              .init
0000000000003e30 l    d  .init_array    0000000000000000              =20
.init_array
0000000000003e30 l     O .init_array    0000000000000000              =20
__frame_dummy_init_array_entry
0000000000001000 l     F .init  0000000000000000              _init

It makes no sense to me.

If I do the same with gkrellm-volume, both volume.o and volume.so =20
contain gkrellm_init_plugin.   The compiles seems pretty similar:

x86_64-pc-linux-gnu-gcc -O2 -pipe -DPACKAGE=3D"\"gkrellm-volume\""  -fPIC =20
`pkg-config gtk+-2.0 --cflags`  -I/usr/local/include -DALSA   -c -o =20
volume.o volume.c
   (same for mixer.c, oss_mixer.c, and alsa_mixer.c)
x86_64-pc-linux-gnu-gcc volume.o mixer.o oss_mixer.o alsa_mixer.o  -o =20
volume.so `pkg-config gtk+-2.0 --libs` -lasound -shared -Wl,-O1 =20
-Wl,--as-needed

Anything else I can check or try?

Jack=