Menu

#1853 requirement for 'lib64' checks

obsolete: 8.4.9
open
7
2005-02-12
2005-02-12
No

When you build Tk on SuSE 9.2 x86_64 with "standard"
settings, if you don't have xmkmf (/usr/X11R6/bin) in
your path, it will end up picking the wrong X11 libpath
and dying at link time.

The xmkmf usage is injected by AC_PATH_X, part of
tcl.m4:SC_PATH_X. When found, it will correctly show:

checking for X... libraries /usr/X11R6/lib64, headers
/usr/X11R6/include

when you don't have it on your path, you get:

checking for X... libraries /usr/X11/lib, headers
checking for X11 header files...

This is because it falls back to other checks in
SC_PATH_X, which don't account for lib64. What happens
is that when you get to the link step, it fails with:

/usr/lib64/gcc-lib/x86_64-suse-linux/3.3.4/../../../../x86_64-suse-linux/bin/ld:
skipping incompatible /usr/X11/lib/libX11.so when
searching for -lX11
/usr/lib64/gcc-lib/x86_64-suse-linux/3.3.4/../../../../x86_64-suse-linux/bin/ld:
skipping incompatible /usr/X11/lib/libX11.a when
searching for -lX11
/usr/lib64/gcc-lib/x86_64-suse-linux/3.3.4/../../../../x86_64-suse-linux/bin/ld:
cannot find -lX11

So obviously, lib64 is the default correct version.
Should SC_PATH_X look in /usr/X11R6/lib64 first? That
would apply to all platforms. Also, what about
non-64-bit builds? IIUC, those are the default on
x86_64 Linux platforms, but that it may be possible to
build 32-bit on those machines with gcc.

In another bug report, someone mentioned that
SC_PATH_TCLCONFIG and SC_PATH_TKCONFIG might also look
in /usr/lib64 as well.

Basically, lib64 is throwing some wrenches into the
usual build. What upgrades to the m4 are the "correct"
ones?

Discussion

  • Jeffrey Hobbs

    Jeffrey Hobbs - 2005-02-14

    Logged In: YES
    user_id=72656

    The other point being, should xmkmf reasonably be expected
    to be in the user's path when building Tk?

     
  • Don Porter

    Don Porter - 2006-03-10

    Logged In: YES
    user_id=80530

    is this fixable for 8.4.13?

     
MongoDB Logo MongoDB