libtool
[Top][All Lists]
Advanced

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

AW: Interix Shared Libraries


From: Duft Markus
Subject: AW: Interix Shared Libraries
Date: Tue, 4 Jul 2006 17:14:50 +0200

Pfuh....

I ran some tests now ;o) The thing is, that i left libtool as it was (my 
patches applied) when i built it using wgcc (i normally use gcc to build it, 
since i don't need libltdl, so it doesn't really matter), so the configure used 
hadn't got
My changes in it (it tried updating by itself, but it seems i'm missing the 
right autotools versions ;o)). Some tests failed, the first some with a 
segfault, and the latter ones, which try to exec something simply don't find 
their .dll file, because the path (really PATH on windows) has to be set to 
point to the dll. Then again some segfaults, but i'll look into this ;o)
I'll tomorrow manually bootstrap libtool with itsself, so i get wgcc in... 
Maybe then more tests succeed.

Testing wgcc on f77 is a little unfair ;o) wgcc is C and C++ (everything M$'s 
cl.exe can do)...

Heres the output for wgcc:
==========================

mduft wgcc $ gmake check
Making check in .
gmake[1]: Nothing to be done for `check-am'.
Making check in libltdl
Making check in doc
gmake[1]: Nothing to be done for `check'.
Making check in tests
gmake  check-TESTS
PASS: cdemo-static.test
PASS: cdemo-make.test
PASS: cdemo-exec.test
PASS: demo-static.test
PASS: demo-make.test
PASS: demo-exec.test
PASS: demo-inst.test
PASS: demo-unst.test
PASS: depdemo-static.test
PASS: depdemo-make.test
PASS: depdemo-exec.test
PASS: depdemo-inst.test
PASS: depdemo-unst.test
PASS: mdemo-static.test
PASS: mdemo-make.test
PASS: mdemo-exec.test
FAIL: mdemo-inst.test
PASS: mdemo-unst.test
PASS: cdemo-conf.test
PASS: cdemo-make.test
PASS: cdemo-exec.test
PASS: demo-conf.test
FAIL: demo-make.test
FAIL: demo-exec.test
FAIL: demo-inst.test
PASS: demo-unst.test
FAIL: deplibs.test
PASS: depdemo-conf.test
PASS: depdemo-make.test
FAIL: depdemo-exec.test
FAIL: depdemo-inst.test
PASS: depdemo-unst.test
PASS: mdemo-conf.test
FAIL: mdemo-make.test
SKIP: mdemo-exec.test
SKIP: mdemo-inst.test
PASS: mdemo-unst.test
FAIL: dryrun.test
PASS: demo-nofast.test
FAIL: demo-make.test
FAIL: demo-exec.test
FAIL: demo-inst.test
PASS: demo-unst.test
PASS: demo-pic.test
FAIL: demo-make.test
FAIL: demo-exec.test
PASS: demo-nopic.test
FAIL: demo-make.test
FAIL: demo-exec.test
PASS: depdemo-nofast.test
PASS: depdemo-make.test
FAIL: depdemo-exec.test
FAIL: depdemo-inst.test
PASS: depdemo-unst.test
PASS: cdemo-shared.test
PASS: cdemo-make.test
PASS: cdemo-exec.test
PASS: demo-shared.test
FAIL: demo-make.test
FAIL: demo-exec.test
FAIL: demo-inst.test
SKIP: hardcode.test
SKIP: build-relink.test
SKIP: noinst-link.test
PASS: demo-unst.test
PASS: depdemo-shared.test
PASS: depdemo-make.test
FAIL: depdemo-exec.test
FAIL: depdemo-inst.test
FAIL: build-relink2.test
PASS: depdemo-unst.test
PASS: mdemo-shared.test
FAIL: mdemo-make.test
SKIP: mdemo-exec.test
SKIP: mdemo-inst.test
PASS: mdemo-unst.test
PASS: assign.test
PASS: link.test
PASS: link-2.test
PASS: nomode.test
PASS: quote.test
PASS: sh.test
PASS: suffix.test
PASS: pdemo-conf.test
FAIL: pdemo-make.test
FAIL: pdemo-exec.test
FAIL: pdemo-inst.test
PASS: mdemo-conf.test
FAIL: mdemo-make.test
PASS: mdemo2-conf.test
FAIL: mdemo2-make.test
SKIP: mdemo2-exec.test
PASS: duplicate_members.test
FAIL: link-order.test
PASS: tagdemo-static.test
FAIL: tagdemo-make.test
SKIP: tagdemo-exec.test
PASS: tagdemo-conf.test
FAIL: tagdemo-make.test
SKIP: tagdemo-exec.test
PASS: tagdemo-shared.test
FAIL: tagdemo-make.test
SKIP: tagdemo-exec.test
FAIL: f77demo-static.test
SKIP: f77demo-make.test
SKIP: f77demo-exec.test
FAIL: f77demo-conf.test
SKIP: f77demo-make.test
SKIP: f77demo-exec.test
FAIL: f77demo-shared.test
SKIP: f77demo-make.test
SKIP: f77demo-exec.test
====================================
37 of 95 tests failed
(17 tests were not run)
Please report to address@hidden
====================================
gmake[2]: *** [check-TESTS] Error 1
gmake[1]: *** [check-am] Error 2
gmake: *** [check-recursive] Error 1

And here goes the output for gcc, which still did a little better ;o):
======================================================================

mduft gcc $ gmake check
Making check in .
gmake[1]: Nothing to be done for `check-am'.
Making check in libltdl
gmake[1]: Nothing to be done for `check'.
Making check in doc
gmake[1]: Nothing to be done for `check'.
Making check in tests
gmake  check-TESTS
PASS: cdemo-static.test
PASS: cdemo-make.test
PASS: cdemo-exec.test
PASS: demo-static.test
PASS: demo-make.test
PASS: demo-exec.test
PASS: demo-inst.test
PASS: demo-unst.test
PASS: depdemo-static.test
PASS: depdemo-make.test
PASS: depdemo-exec.test
PASS: depdemo-inst.test
PASS: depdemo-unst.test
PASS: mdemo-static.test
PASS: mdemo-make.test
PASS: mdemo-exec.test
PASS: mdemo-inst.test
PASS: mdemo-unst.test
PASS: cdemo-conf.test
PASS: cdemo-make.test
PASS: cdemo-exec.test
PASS: demo-conf.test
PASS: demo-make.test
PASS: demo-exec.test
PASS: demo-inst.test
PASS: demo-unst.test
PASS: deplibs.test
PASS: depdemo-conf.test
PASS: depdemo-make.test
PASS: depdemo-exec.test
PASS: depdemo-inst.test
PASS: depdemo-unst.test
PASS: mdemo-conf.test
PASS: mdemo-make.test
PASS: mdemo-exec.test
PASS: mdemo-inst.test
PASS: mdemo-unst.test
PASS: dryrun.test
PASS: demo-nofast.test
PASS: demo-make.test
PASS: demo-exec.test
PASS: demo-inst.test
PASS: demo-unst.test
PASS: demo-pic.test
PASS: demo-make.test
PASS: demo-exec.test
PASS: demo-nopic.test
PASS: demo-make.test
PASS: demo-exec.test
PASS: depdemo-nofast.test
PASS: depdemo-make.test
PASS: depdemo-exec.test
PASS: depdemo-inst.test
PASS: depdemo-unst.test
PASS: cdemo-shared.test
PASS: cdemo-make.test
PASS: cdemo-exec.test
PASS: demo-shared.test
PASS: demo-make.test
PASS: demo-exec.test
PASS: demo-inst.test
FAIL: hardcode.test
PASS: build-relink.test
PASS: noinst-link.test
PASS: demo-unst.test
PASS: depdemo-shared.test
PASS: depdemo-make.test
PASS: depdemo-exec.test
PASS: depdemo-inst.test
PASS: build-relink2.test
PASS: depdemo-unst.test
PASS: mdemo-shared.test
PASS: mdemo-make.test
PASS: mdemo-exec.test
PASS: mdemo-inst.test
PASS: mdemo-unst.test
PASS: assign.test
PASS: link.test
PASS: link-2.test
PASS: nomode.test
PASS: quote.test
PASS: sh.test
PASS: suffix.test
PASS: pdemo-conf.test
PASS: pdemo-make.test
PASS: pdemo-exec.test
PASS: pdemo-inst.test
PASS: mdemo-conf.test
PASS: mdemo-make.test
PASS: mdemo2-conf.test
PASS: mdemo2-make.test
PASS: mdemo2-exec.test
PASS: duplicate_members.test
PASS: link-order.test
PASS: tagdemo-static.test
PASS: tagdemo-make.test
PASS: tagdemo-exec.test
PASS: tagdemo-conf.test
PASS: tagdemo-make.test
PASS: tagdemo-exec.test
PASS: tagdemo-shared.test
PASS: tagdemo-make.test
PASS: tagdemo-exec.test
PASS: f77demo-static.test
PASS: f77demo-make.test
PASS: f77demo-exec.test
PASS: f77demo-conf.test
PASS: f77demo-make.test
PASS: f77demo-exec.test
PASS: f77demo-shared.test
PASS: f77demo-make.test
PASS: f77demo-exec.test
====================================
1 of 112 tests failed
Please report to address@hidden
====================================
gmake[2]: *** [check-TESTS] Error 1
gmake[1]: *** [check-am] Error 2
gmake: *** [check-recursive] Error 1

Regards, Markus

-----Ursprüngliche Nachricht-----
Von: Ralf Wildenhues [mailto:address@hidden 
Gesendet: Dienstag, 4. Juli 2006 13:00
An: Duft Markus
Cc: address@hidden
Betreff: Re: Interix Shared Libraries

Hello Markus,

* Duft Markus wrote on Tue, Jul 04, 2006 at 08:43:59AM CEST:
>  
> To bring some (good) news (i think ;o)). I wrote a little compiler 
> wrapper you may have heard of -> wgcc
> (www.sourceforge.net/projects/interix-wgcc) which behaves like gcc and 
> uses microsofts toolchain in the background. As of 0.6.0 the shared 
> library support is quite stable. I also created a little patch for 
> libtool 1.5.22 which allows building it shared with wgcc.

Is there interest in getting these changes merged into Libtool?
Support for newer interix major versions is interesting in any case.
Some of your changes look like they break the support for gcc, though, 
especially these are problematic:

| diff -rubB libtool-1.5.22.orig/libtool.m4 libtool-1.5.22/libtool.m4
| --- libtool-1.5.22.orig/libtool.m4    2006-07-03 07:48:02.000000000 +0200
| +++ libtool-1.5.22/libtool.m4 2006-07-03 07:49:41.000000000 +0200
| @@ -2361,7 +2361,8 @@
|  
|  interix*)
|    # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a 
| here
| -  lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
| +  lt_cv_deplibs_check_method='pass_all'
| +  #lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
|    ;;
|  
|  irix5* | irix6* | nonstopux*)
| @@ -3245,7 +3246,7 @@
|      _LT_AC_TAGVAR(hardcode_direct, $1)=no
|      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
|      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
| -    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
| +    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=''
|      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
|      # Instead, shared libraries are loaded at an image base (0x10000000 by
|      # default) and relocated if they conflict, which is a slow very 
| memory @@ -5542,7 +5543,7 @@
|        _LT_AC_TAGVAR(hardcode_direct, $1)=no
|        _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
|        _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
| -      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
| +      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=''
|        # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
|        # Instead, shared libraries are loaded at an image base (0x10000000 by
|        # default) and relocated if they conflict, which is a slow very 
| memory
| 

For the first hunk, you could probably try func_win32_libid (see Cygwin) when 
using wgcc (maybe also with gcc), but you'll have to test that.
The other hunks would probably work when special-cased for wgcc only (does the 
wrapper only handle C or also C++, Fortran, whatnot?).

I'd prefer to see test results for both wgcc and gcc (see README for how to 
report failures) before applying anything, and we'd need a copyright 
disclaimers (details off-list).

Cheers, and thanks for sharing this,
Ralf




reply via email to

[Prev in Thread] Current Thread [Next in Thread]