pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: pkgsrc/devel/glib2

On 7/12/2012 08:52, Jonathan Perkin wrote:
* On 2012-07-12 at 00:07 BST, John Marino wrote:

Module Name:    pkgsrc
Committed By:   marino
Date:           Wed Jul 11 23:07:06 UTC 2012

Modified Files:
        pkgsrc/devel/glib2: Makefile

Log Message:
devel/glib2: Fix 32-bit SunOS

On a 32-bit OpenIndiana 151a machine, glib2 failed with the error:
"large files are not supported by libelf".

The glib2 makefile doesn't include libelf from pkgsrc, it uses the version
with the header at /usr/include/libelf.h.  Libelf will only support large
files (64 bits) with 64-bit versions of SunOS.

This change adds additional checks.  When the Makefile determines that the
package is building on a 32-bit SunOS, it will force the configure script
to define _FILE_OFFSET_BITS as 32 which allows glib2 to build completely.

I'm not convinced this is correct.  This previously worked fine, and
didn't limit us to 32-bit file sizes.  What changed recently to cause
this, and can we not use pkgsrc libelf?

I'm not sure how to say it clearer.
The makefile will not load the libelf package for SunOS, so it defaults to the system libelf whose header is /usr/include/libelf.h

In that header, it checks for being a 32 bit platform and _FILE_OFFSET_BITS != 32. If both are true, you get the error "Large files are not supported by libelf" during the build. It is very clearly a known limitation of the SunOS libelf implementation because there's a dedicated check for it. If it previously worked fine on something before, then either the platform was really 64-bit, the configure file come up with 32 bits for _FILE_OFFSET_BITS on its own, or the SunOS libelf wasn't used.

This can be easily verified. It's on line 41 on /usr/include/libelf.h on OpenIndiana 151a and OpenSolaris SXCE 130.


Home | Main Index | Thread Index | Old Index