multiarch procedure

2008-05-09 Thread Steve Edwards
Hi,

I've been using libtool quite happily for some time but have just started 
looking at packaging libraries for x86_64 systems. I'm trying to find out what 
the recommended method is for installation of x86_64 64bit libraries.

Most of the systems I'm targeting are Fedora which expect 64bit libraries in 
/usr/local/lib64 etc. and use /usr/local/lib only for 32bit.

The compilers I have installed on the x86_64 test machine all build 64bit 
libraries by default (which is what I want) but $(libdir) defaults to 
/usr/local/lib

Is the only method to manually set --libdir at configure time (I have libtool 
integrated with automake/autoconf)? I was a little reluctant to have to tell 
everyone building the libraries that they may (or may not) have to use this 
switch since I really was hoping to keep the configure stage as automatic as 
possible.

I've done some googling on the subject (with little or nothing concrete to show 
for it) and it appears that Fedora libtool was patched for multiarch support - 
although I'm currently uncertain whether this is still true.

I had a run through the libtool info at work and I'm sure I found a tantalising 
reference to multiarch (with a comment along the lines of "unless you know what 
this is you don't need it") but I certainly can't find anything on my home 
system (libtool 2.2.4)

Any suggestions for a 'correct' approach will be gratefully received!
(Please CC me in any replies as I am not subscribed to libtool on this email 
account)

Steve
-- 


___
http://lists.gnu.org/mailman/listinfo/libtool


Re: multiarch procedure

2008-05-09 Thread Bob Friesenhahn

On Fri, 9 May 2008, Steve Edwards wrote:


I've been using libtool quite happily for some time but have just 
started looking at packaging libraries for x86_64 systems. I'm 
trying to find out what the recommended method is for installation 
of x86_64 64bit libraries.


Different systems use different approaches.

Is the only method to manually set --libdir at configure time (I 
have libtool integrated with automake/autoconf)? I was a little


The only way to be sure that things will work is to use --prefix and 
install into a different directory tree.  If you advise to use 
--libdir, then you still have the interface header files to worry 
about.  Interface header files often have different definitions for 32 
and 64 bits.


I had a run through the libtool info at work and I'm sure I found a 
tantalising reference to multiarch (with a comment along the lines 
of "unless you know what this is you don't need it") but I certainly 
can't find anything on my home system (libtool 2.2.4)


Libtool 2.2.X includes support for automatically using 64-bit 
libraries on various popular systems (e.g. Solaris, Linux). 
Otherwise 64-bit builds would fail on systems which default to a 32 
bit ABI.  It does not include multiarch/multilib support necessary to 
build 32 and 64 bit libraries and install into that footprint.


Bob
==
Bob Friesenhahn
[EMAIL PROTECTED], http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,http://www.GraphicsMagick.org/



___
http://lists.gnu.org/mailman/listinfo/libtool


Re: multiarch procedure

2008-05-09 Thread Christopher Hulbert
On Fri, May 9, 2008 at 9:20 AM, Bob Friesenhahn
<[EMAIL PROTECTED]> wrote:
> On Fri, 9 May 2008, Steve Edwards wrote:
>>
>> I've been using libtool quite happily for some time but have just started
>> looking at packaging libraries for x86_64 systems. I'm trying to find out
>> what the recommended method is for installation of x86_64 64bit libraries.
>
> Different systems use different approaches.
>
>> Is the only method to manually set --libdir at configure time (I have
>> libtool integrated with automake/autoconf)? I was a little
>
> The only way to be sure that things will work is to use --prefix and install
> into a different directory tree.  If you advise to use --libdir, then you
> still have the interface header files to worry about.  Interface header
> files often have different definitions for 32 and 64 bits.

I agree with this. I started out using the default redhat method of
lib64 and lib. After a while, and adding more platforms, compilers,
versions, etc. I found it useful to almost always use different
prefixes. That being said, I still have a mechanism in my configure to
use lib64, etc.

I use the code below to add a configure option to set a libdir suffix.
Thus, I can set it to create lib64, lib/x86_64, etc. Then, all my
other checks for packages try using $acl_libdirstem to link. If that
fails and it is not simply "lib", I try that for a mix of packages
some of which use lib64, some of which use separate prefixes. You
could also set a default, say based on the existance of "/usr/lib64"
for redhat systems.

AC_DEFUN([CHECK_LIBDIR_SUFFIX],
[
AC_ARG_WITH(libdir-suffix,
AS_HELP_STRING([--with-libdir-suffix=suffix],[Suffix to apply to
library directories]),,with_libdir_suffix=)
])
acl_libdirstem="lib$with_libdir_suffix"
libdir="$libdir$with_libdir_suffix"


Hope that helps some.

>
>> I had a run through the libtool info at work and I'm sure I found a
>> tantalising reference to multiarch (with a comment along the lines of
>> "unless you know what this is you don't need it") but I certainly can't find
>> anything on my home system (libtool 2.2.4)
>
> Libtool 2.2.X includes support for automatically using 64-bit libraries on
> various popular systems (e.g. Solaris, Linux). Otherwise 64-bit builds would
> fail on systems which default to a 32 bit ABI.  It does not include
> multiarch/multilib support necessary to build 32 and 64 bit libraries and
> install into that footprint.
>
> Bob
> ==
> Bob Friesenhahn
> [EMAIL PROTECTED], http://www.simplesystems.org/users/bfriesen/
> GraphicsMagick Maintainer,http://www.GraphicsMagick.org/
>
>
>
> ___
> http://lists.gnu.org/mailman/listinfo/libtool
>


___
http://lists.gnu.org/mailman/listinfo/libtool


libtool(2.2.4) detect native java compiler in cross-compilation environment

2008-05-09 Thread Roumen Petrov

Hello libtool Team,

In my environment exist GNU C and Java compilers along with mingw C 
cross-compiler. When I build libtool the path to mingw C-compiler (gcc) 
precede path to native C-compiler.


In configure output I see :

checking for i386-mingw32msvc-strip... i386-mingw32msvc-strip

checking for i386-mingw32msvc-gcc... i386-mingw32msvc-gcc

checking for i386-mingw32msvc-gcj... no
checking for gcj... gcj -> OOPS !

checking if gcj supports -fno-rtti -fno-exceptions... (cached) no
checking for gcj option to produce PIC...
checking if gcj static flag -static works... no
checking if gcj supports -c -o file.o... yes
checking if gcj supports -c -o file.o... (cached) yes
checking whether the gcj linker (/opt/mingw/i386-mingw32msvc/bin/ld)
.


Is above detection correct ?
If is detected a prefix for a program why configure try to find a 
program without prefix ?


The check for Fortran compiler look similar but I don't have installed 
native Fortran-compiler so libtool configure don't detect any.


Roumen


___
http://lists.gnu.org/mailman/listinfo/libtool


Re: libtool(2.2.4) detect native java compiler in cross-compilation environment

2008-05-09 Thread Bob Friesenhahn

On Fri, 9 May 2008, Roumen Petrov wrote:


checking for i386-mingw32msvc-gcj... no
checking for gcj... gcj -> OOPS !

Is above detection correct ?
If is detected a prefix for a program why configure try to find a program 
without prefix ?


It looks to me like it did not detect a prefix for the program in the 
above example, so, as a last-ditch effort, it tried without a prefix.


If it picks up the wrong tools, does libtool's configure end up using 
them or does it eventually reject them?


Bob
==
Bob Friesenhahn
[EMAIL PROTECTED], http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,http://www.GraphicsMagick.org/



___
http://lists.gnu.org/mailman/listinfo/libtool


Re: libtool(2.2.4) detect native java compiler in cross-compilation environment

2008-05-09 Thread Roumen Petrov

Bob Friesenhahn wrote:

On Fri, 9 May 2008, Roumen Petrov wrote:


checking for i386-mingw32msvc-gcj... no
checking for gcj... gcj -> OOPS !

Is above detection correct ?
If is detected a prefix for a program why configure try to find a 
program without prefix ?


It looks to me like it did not detect a prefix for the program in the 
above example, so, as a last-ditch effort, it tried without a prefix.


If it picks up the wrong tools, does libtool's configure end up using 
them or does it eventually reject them?


Dunno. May be it try to use.
As example file "tests/testsuite.dir/35/run contain" (after 
make check-local) contain:

=
...
CPP='i386-mingw32msvc-gcc -E'
...
STRIP='i386-mingw32msvc-strip'
...
GCJ='gcj' GCJFLAGS='-g -O2'
...
=


Also in the file /tests/convenience.at I found:
=
262:  # There are just too many broken gcj installations out there, 
either missing

263:  # libgcj.spec or unable to find it.  Skip this test for them.
264:  if test $i -eq 1; then
265:AT_CHECK([$GCJ $GCJFLAGS -c foo1.java || exit 77], [], [ignore], 
[ignore])
266:AT_CHECK([$GCJ $GCJFLAGS --main=foo1 -o foo1 foo1.java A1.java 
|| exit 77],[],[ignore],[ignore])

267:AT_CHECK([./foo1$EXEEXT || exit 77],[],[ignore],[ignore])
=
and the command "make check-local" report:
 23: Java convenience archives   skipped 
(convenience.at:267)





Bob
==
Bob Friesenhahn
[EMAIL PROTECTED], http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,http://www.GraphicsMagick.org/




Roumen


___
http://lists.gnu.org/mailman/listinfo/libtool