UnicodePlugin and configure/Makefile.inc

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

UnicodePlugin and configure/Makefile.inc

stes
 

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256


Hi,

When configuring on a Solaris 11.4 system I get in 'configure'

checking for PangoCairo libraries... no
******** disabling UnicodePlugin

However pango is installed on Solaris 11.4 :

library/desktop/pango                             1.40.4-11.4.0.0.1.14.0     i--

on Solaris 11.3 I have

library/desktop/pango                             1.40.4-0.175.3.29.0.3.0    i--

And on Solaris 11.3, the UnicodePlugin compiles and is not disabled.

I think this is related to an issue in the Makefile.inc and configure script.

The configure script is doing a small test with

CPPFLAGS="-I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/lib/i386-linux-gnu/glib-2.0/include"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <pango/pangocairo.h>

But the above includes are wrong for Solaris 11.4

For the UnicodePlugin, I've noticed that

        platforms/unix/plugins/UnicodePlugin

has two files Makefile.inc and acinclude.m4 (which are possibly related,
by autoconf) that have

XCPPFLAGS= -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0  -I/usr/lib/glib-2.0/include -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/lib/i386-linux-gnu/glib-2.0/include

Note that on Solaris 64bit I think the above is not correct.

On Solaris there is:

 # pkg-config --cflags glib-2.0
 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include  

and

 # PKG_CONFIG_PATH=/usr/lib/64/pkgconfig pkg-config --cflags glib-2.0
- -I/usr/include/glib-2.0 -I/usr/lib/amd64/glib-2.0/include  

It should somehow include /usr/lib/amd64/glib-2.0/include/ for the Makefile,
and also for the configure script, in the case of a 64 bit build.

So the arm-linux-gnueabihf and i386-linux-gnu stuff is wrong and not needed.

When changing the Makefile.inc to delete the -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/lib/i386-linux-gnu/glib-2.0/include stuff, and add the /usr/lib/amd64/glib-2.0/include  this is fixed.

I can also change the 'configure' script and fix the include.

The right fix probably is to regenerate it with 'autoconf' but this requires,
perhaps to have it use the pkg-config --cflags output ?

Also instead of changing Makefile.inc, maybe some trick is
possible to have it use the pkg-config --cflags output ??

Note that for some reason on older versions of Solaris like Solaris 10
and Solaris 11.3,  the issue is not happening,
but the includes are still wrong.  They just don't break the build there.

Regards,
David Stes

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQEcBAEBCAAGBQJfX1S2AAoJEAwpOKXMq1Ma0BcH/03SRpvmbjXj5+KO8k7RBsqK
MlJ9nyRxmhy+vlesUR6huSLIQT1JcEf1AZSgZUjJXIuvyUst1wAIc8oE8o4ulfSo
LRoJbPUbrm1JZW5rCeWDPJqtVhYiMxTqVinONdq5tFpk724K2VUycgCTzpMXeAdw
uwP5JTgXplzbAZwXaBMpiKqb5hgI0GltPwO+FVo0L/xxb5jAeimkLlJqnDyfQy++
zPWFVRT+xMDSsEPUFC0Oqr1TgAsAnHUpJRu599GJ8fzmYHOGJR4AD8uOrM6cCm86
gOPd0P1ZwZ4LP/Anl2h+hfRS/UD/EOB5GcU+AgWFSfsVK5tMQRI1OWGngCndoT0=
=nK33
-----END PGP SIGNATURE-----

Reply | Threaded
Open this post in threaded view
|

Latest OpenSmalltalkVM on Solaris 10

stes
 

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256


As an experiment, I compiled the latest OpenSmalltalk VM on Solaris 10.

The good news is OpenSmalltalk VM still works on Solaris 10.

Note that there is one issue with "new experimental code" in sqUnixSocket.c

"/stes/src/opensmalltalk/platforms/unix/plugins/SocketPlugin/sqUnixSocket.c", line 95: cannot find include file: <ifaddrs.h>
"/stes/src/opensmalltalk/platforms/unix/plugins/SocketPlugin/sqUnixSocket.c", line 1517: warning: implicit function declaration: getifaddrs

Apparently Solaris 10 has no /usr/include/ifaddrs.h.

Also the Squeak-4 sources do not use this include.

It can be seen in platforms/unix/plugins/sqUnixSocket.c that there is

#if 0
/* old code */
{       sqInt localaddr = nameToAddr(localHostName);
        if (!localaddr)
                localaddr = nameToAddr("localhost");
        return localaddr;
}
#else
/* experimental new code */
{
    struct ifaddrs *ifaddr, *ifa;

so on Solaris 10 I enabled the "old code" again, and that compiles.

The "experimental new code" is in there already for quite a few years, I guess.

Ideally the configure script could have something

  HAVE_IFADDRS

and #ifdef HAVE_IFADDRS

 #include <ifaddrs.h>

So then it could use the 'old code' on Solaris 10 and the new code
on Solaris 11.

David Stes

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQEcBAEBCAAGBQJfX1f0AAoJEAwpOKXMq1MauLwH/irBtTt/vhzRPW3LfbLyInB8
Oq33iL/OulBBq9e9e42zuDKPS5mlpZs/Rc15sqw1jl+4TLq6PHtHq8jC2Z+H69K7
CCxBZXiypnrwWwx2MPl+e2LB3vTEjWXB8ZVoUMi3utSyAcRL3XU8R+lhsa/E+1OC
trP8z5RW7jFHLgP8ZcOiaUIJ+geBq/ybo0V0daGZZGFpLb9fYiC6wdPHhDzVaw2S
KY9hHaRvlqx1WER4NwHC8zW1tfS9gUzv4eNFnPcNy3Iy1OP2dl/pj+WFB27Yeu/w
El+MOG5lJPqbScyUuRIHOt737apra6bDvQJite3zV9BXEZ9OX9TYg0lQK3tJnWM=
=euxC
-----END PGP SIGNATURE-----