RSS/Atom feed Twitter
Site is read-only, email is disabled

Undefined references after update to GLIB 2.28.1

This discussion is connected to the gegl-developer-list.gnome.org mailing list which is provided by the GIMP developers and not related to gimpusers.com.

This is a read-only list on gimpusers.com so this discussion thread is read-only, too.

3 of 3 messages available
Toggle history

Please log in to manage your subscriptions.

Undefined references after update to GLIB 2.28.1 Eric Grivel 10 Mar 02:27
  Undefined references after update to GLIB 2.28.1 Martin Nordholts 10 Mar 15:34
   Undefined references after update to GLIB 2.28.1 Eric Grivel 11 Mar 02:00
Eric Grivel
2011-03-10 02:27:01 UTC (over 13 years ago)

Undefined references after update to GLIB 2.28.1

Hi,

Recently, the requirement to compile GIMP from the git repository changed to require GLIB 2.28.1 or higher.

I installed GLIB 2.28.1, but after doing that I'm getting undefined references when building GEGL:

make[3]: Entering directory `/mnt/lincoln/d3/gimp/source/gegl/examples' CC 2geglbuffer.c
CCLD 2geglbuffer
/mnt/lincoln/d3/gimp/deploy/lib/libgio-2.0.so: undefined reference to `g_source_get_time'
/mnt/lincoln/d3/gimp/deploy/lib/libgio-2.0.so: undefined reference to `g_source_set_dummy_callback'
/mnt/lincoln/d3/gimp/deploy/lib/libgio-2.0.so: undefined reference to `g_main_context_invoke'
/mnt/lincoln/d3/gimp/deploy/lib/libgio-2.0.so: undefined reference to `g_source_add_child_source'
/mnt/lincoln/d3/gimp/deploy/lib/libgio-2.0.so: undefined reference to `g_list_free_full'
/mnt/lincoln/d3/gimp/deploy/lib/libgio-2.0.so: undefined reference to `g_get_environ'
/mnt/lincoln/d3/gimp/deploy/lib/libgio-2.0.so: undefined reference to `g_signal_accumulator_first_wins'
/mnt/lincoln/d3/gimp/deploy/lib/libgio-2.0.so: undefined reference to `g_get_monotonic_time'

I installed GLIB 2.28.1 by compiling it from source, using the same --prefix=/mnt/lincoln/d3/gimp/deploy I am using to compile babl, gegl and gimp. When I remove the entire deploy directory and start over without building GLIB 2.28.1 first (my system has GLIB 2.26.0 installed), both BABL and GEGL compile and install correctly (but of course I can't build GIMP because of the dependency).

I'm thinking I'm probably doing something wrong when deploying GLIB 2.28.1 to my build environment, but I don't know what... Any help would be much appreciated!

Eric Grivel

Martin Nordholts
2011-03-10 15:34:03 UTC (over 13 years ago)

Undefined references after update to GLIB 2.28.1

On 03/10/2011 03:27 AM, Eric Grivel wrote:

make[3]: Entering directory `/mnt/lincoln/d3/gimp/source/gegl/examples' CC 2geglbuffer.c
CCLD 2geglbuffer
/mnt/lincoln/d3/gimp/deploy/lib/libgio-2.0.so: undefined reference to `g_source_get_time'

I'm thinking I'm probably doing something wrong when deploying GLIB 2.28.1 to my build environment, but I don't know what... Any help would be much appreciated!

build again with

make V=1

and look at the paths and files given to the linker, you will probably find that /usr/lib/libglib-2.0.so comes before /mnt/lincoln/d3/gimp/deploy/lib/libglib-2.0.so

Look in the generated Makefile and look for what LDFLAGS that uses the old version, and try to fix the problem, for example by rebuilding that dependency against your own glib, or by setting LDFLAGS manually, or by manually changing the order of things in the Makefile

/ Martin

Eric Grivel
2011-03-11 02:00:01 UTC (over 13 years ago)

Undefined references after update to GLIB 2.28.1

On 03/10/2011 10:34 AM, Martin Nordholts wrote:

On 03/10/2011 03:27 AM, Eric Grivel wrote:

make[3]: Entering directory `/mnt/lincoln/d3/gimp/source/gegl/examples' CC 2geglbuffer.c
CCLD 2geglbuffer
/mnt/lincoln/d3/gimp/deploy/lib/libgio-2.0.so: undefined reference to `g_source_get_time'

I'm thinking I'm probably doing something wrong when deploying GLIB 2.28.1 to my build environment, but I don't know what... Any help would be much appreciated!

build again with

make V=1

and look at the paths and files given to the linker, you will probably find that /usr/lib/libglib-2.0.so comes before /mnt/lincoln/d3/gimp/deploy/lib/libglib-2.0.so

Look in the generated Makefile and look for what LDFLAGS that uses the old version, and try to fix the problem, for example by rebuilding that dependency against your own glib, or by setting LDFLAGS manually, or by manually changing the order of things in the Makefile

/ Martin

Thanks, Martin, for the suggestions. I did all the above but it didn't help. There were no references to /usr/lib/libglib-2.0* anywhere that I could find.

In the end, I renamed the /usr/lib/libglib-2.0.* files and got an error with an can't open for /usr/lib/libglib-2.0.la. But there is no reference to that file anywhere. I went back and re-compiled glib-2.28.1, babl and gegl from scratch, same error. Grep on source and deploy tree did not find it.

I'm now thinking that many of the libraries in my Linux distribution will have dependencies on glib, and that their *.la files have hard-coded paths to /usr/lib for those dependencies. Somewhere they cause the old glib libraries to be loaded...

With that, I bit the bullet and updated the glib version in /usr/lib, hoping that glib-2.28 is enough backward compatible with glib-2.26 so that this doesn't cause any problems. At least, I can compile GEGL and GIMP again.

Is there a better way in which I can keep the development environment separate from my distribution without having to get copies of ALL the components that it uses?

Eric