New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support building of 32- and 64-bit libraries #1472

Closed
michaelrsweet opened this Issue Mar 9, 2006 · 1 comment

Comments

Projects
None yet
1 participant
@michaelrsweet
Collaborator

michaelrsweet commented Mar 9, 2006

Version: 1.2-feature
CUPS.org User: mike

Some operating systems separate the 32-bit and 64-bit libraries.

IRIX:

/usr/lib == old 32-bit (MIPS2)
/usr/lib32 == new 32-bit (MIPS3)
/usr/lib64 == 64-bit (MIPS4)

Linux:

Debian is AFU and uses:

    /usr/lib == 64-bit
    /usr/lib32 == 32-bit

while the rest of the Linux world uses:

    /usr/lib == 32-bit
    /usr/lib64 == 64-bit

thus preserving binary compatibility on x86_64 systems running
i386 binaries.  Looks like we can detect this by looking for
/usr/lib32 on Linux...

Solaris:

/usr/lib == default arch
/usr/lib/32 == 32-bit, normally a symlink to /usr/lib
/usr/lib/64 == 64-bit

Ideally, we want to build all of CUPS for the default architecture and the libcups and libcupsimage libraries for the alternate. We must also make sure that we add a symlink from /usr/lib/cups to /usr/lib{32|64|/32|/64}/cups so that filters, etc. continue to work as expected on all operating systems.

@michaelrsweet

This comment has been minimized.

Collaborator

michaelrsweet commented Mar 10, 2006

CUPS.org User: mike

Fixed in Subversion repository.

FWIW, changing CUPS_SERVERBIN to point to $exec_prefix/lib/cups or $exec_prefix/libexec/cups instead of $libdir/cups fixes the latter issue - no need for a symlink anymore.

To summarize the implementation, I've added two new configure directives, --enable-32bit and --enable-64bit, which enable generation of the corresponding separate cups and cupsimage libraries. The --enable-32bit option is implemented for GCC and native compilers on IRIX, Linux, and Solaris. The --enable-64bit option is implemented for GCC and native compilers on IRIX and Solaris.

64-bit Linux compiles now default libdir to /usr/lib64 when present. Similarly, 32-bit libraries are placed in /usr/lib32 when present. This should, hopefully, work around Debian's unfortunate choice to turn their backs on the rest of the Linux community and the long history in the commercial UNIX environment of placing the 64-bit libraries in a separate directory from /usr/lib.

Currently none of the packaging files has been updated to include the alternate libraries, when configured - will create a separate STR for that...

@michaelrsweet michaelrsweet added this to the Stable milestone Mar 17, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment