hard-link locking & filesystems

2002-01-31 Thread Jeff Dubrule

When a compiler is insufficiently cool, libtool uses hard-link locking
to prevent the same file from being compiled in the same place.

It does this by waiting until:

ln /usr/bin/libtool whatever.lock

succeeds.

However, if libtool is installed on a different filesystem from where
the compile is proceeding (/usr vs /home, for example), this will
never succeed, and will sit there saying:

Waiting for bcfmail.o.lock to be removed
Waiting for bcfmail.o.lock to be removed
Waiting for bcfmail.o.lock to be removed
...

The hard-link-locking check in configure, naturally, does not catch
this problem.

Hard-link-locking, if we're to keep using it, should lock to a temp
file created in the same directory.

-jeff

___
Libtool mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/libtool



Building projects on i386-pc-solaris2.8

2002-01-31 Thread Allan McIntosh

Hey,

I rewrote a project's build process to use autotools and libtool.
Everything builds fine but the binary seg faults at run time(in i386
solaris2.8 ). Does anyone know of any issues or AC_ AM_ macros that are
absolutely required to build shared objects and dynamicly linked
binaries(when porting to intel solaris2.8)?

The binary builds and runs fine on Redhat 7.2. However when I build the
target in i386-pc-solaris2.8 it segment faults when I run it. If I build
it with out libtool and autotools it is fine.

My make set up builds a few binarys that link to existing libs as well as
some of the shared objects and libraries built with in the project.


Not sure if the info I have included is helpful or not.

Thanks in advance.


i386-pc-solaris2.8
gcc version 2.95.3 20010315 (release)
libtool 1.4.2


Al





___
Libtool mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/libtool



Re: Building projects on i386-pc-solaris2.8

2002-01-31 Thread Albert Chin

On Thu, Jan 31, 2002 at 02:04:27PM -0500, Allan McIntosh wrote:
> I rewrote a project's build process to use autotools and libtool.
> Everything builds fine but the binary seg faults at run time(in i386
> solaris2.8 ). Does anyone know of any issues or AC_ AM_ macros that are
> absolutely required to build shared objects and dynamicly linked
> binaries(when porting to intel solaris2.8)?
> 
> The binary builds and runs fine on Redhat 7.2. However when I build the
> target in i386-pc-solaris2.8 it segment faults when I run it. If I build
> it with out libtool and autotools it is fine.

Even if you --disable-shared?

-- 
albert chin ([EMAIL PROTECTED])

___
Libtool mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/libtool



-lc fix for BSD/OS and FreeBSD

2002-01-31 Thread Dave MacKenzie

I was trying to run a CGI program with Apache 2.0.18 on BSDI BSD/OS 4.3,
and found that when read() on a nonblocking pipe returned -1, errno wasn't
setting set (to EAGAIN); it was 0.  So apache didn't do its timeout call
and the CGI request got a Server Error.

The problem turned out to be that when linking libapr.so, libtool was adding
-lc.  Then, when libapr.so was linked into httpd, -lc gets linked in again,
and there are now two copies of libc in apache's address space, each with its
own thread-safe copy of errno.

The version of libtool that came with Apache is:

ltmain.sh (GNU libtool) 1.3.4-freebsd-ports (1.385.2.196 1999/12/07 21:47:57)

However, the problem still exists in:

ltmain.sh (GNU libtool) 1.4 (1.920 2001/04/24 23:26:18)

The latter contains this case:

  *-*-netbsd*)
# Don't link with libc until the a.out ld.so is fixed.
;;

That case needs to be extended to:

  *-*-netbsd* | *-*-freebsd* | *-*-bsdi4*)
# Don't link with libc until the a.out ld.so is fixed.
;;

The FreeBSD port of libtool adds freebsd, and as I just discovered,
BSD/OS needs the same treatment.

This problem also recently bit Steven Schultz <[EMAIL PROTECTED]> while
porting some video software from Linux to BSD/OS.

___
Libtool mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/libtool



RE: -lc fix for BSD/OS and FreeBSD

2002-01-31 Thread Howard Chu

I've found other problems on Solaris and Linux with libtool explicitly adding
libc to the link line. One of the more recent hassles is with gcc 3.x; if you
build a shared library with gcc and explicitly link -lc, gcc also links
libgcc.so into your object. This gets to be a real hassle because now you have
shared libraries that wrongly have a dependency on libgcc. Only linked
executables are supposed to pull in libgcc, and it's really only critical for
C++, not for plain C.

It would be safest if libtool never added -lc to the link line, since all C
compiler drivers already do it implicitly.

  -- Howard Chu
  Chief Architect, Symas Corp.   Director, Highland Sun
  http://www.symas.com   http://highlandsun.com/hyc
  Symas: Premier OpenSource Development and Support

> -Original Message-
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of
> Dave MacKenzie
> Sent: Thursday, January 31, 2002 7:23 PM
> To: [EMAIL PROTECTED]
> Cc: [EMAIL PROTECTED]
> Subject: -lc fix for BSD/OS and FreeBSD
>
>
> I was trying to run a CGI program with Apache 2.0.18 on BSDI BSD/OS 4.3,
> and found that when read() on a nonblocking pipe returned -1, errno wasn't
> setting set (to EAGAIN); it was 0.  So apache didn't do its timeout call
> and the CGI request got a Server Error.
>
> The problem turned out to be that when linking libapr.so, libtool was adding
> -lc.  Then, when libapr.so was linked into httpd, -lc gets linked in again,
> and there are now two copies of libc in apache's address space, each with its
> own thread-safe copy of errno.
>
> The version of libtool that came with Apache is:
>
> ltmain.sh (GNU libtool) 1.3.4-freebsd-ports (1.385.2.196 1999/12/07 21:47:57)
>
> However, the problem still exists in:
>
> ltmain.sh (GNU libtool) 1.4 (1.920 2001/04/24 23:26:18)
>
> The latter contains this case:
>
>   *-*-netbsd*)
> # Don't link with libc until the a.out ld.so is fixed.
> ;;
>
> That case needs to be extended to:
>
>   *-*-netbsd* | *-*-freebsd* | *-*-bsdi4*)
> # Don't link with libc until the a.out ld.so is fixed.
> ;;
>
> The FreeBSD port of libtool adds freebsd, and as I just discovered,
> BSD/OS needs the same treatment.
>
> This problem also recently bit Steven Schultz <[EMAIL PROTECTED]> while
> porting some video software from Linux to BSD/OS.
>
> ___
> Libtool mailing list
> [EMAIL PROTECTED]
> http://mail.gnu.org/mailman/listinfo/libtool
>


___
Libtool mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/libtool



Re: Building projects on i386-pc-solaris2.8

2002-01-31 Thread Allan McIntosh

>

>On Thu, Jan 31, 2002 at 02:04:27PM -0500, Allan McIntosh wrote:
>> I rewrote a project's build process to use autotools and libtool.
>> Everything builds fine but the binary seg faults at run time(in i386
>> solaris2.8 ). Does anyone know of any issues or AC_ AM_ macros that are
>> absolutely required to build shared objects and dynamicly linked
>> binaries(when porting to intel solaris2.8)?
>>
>> The binary builds and runs fine on Redhat 7.2. However when I build the
>> target in i386-pc-solaris2.8 it segment faults when I run it. If I build
>> it with out libtool and autotools it is fine.
>
>Even if you --disable-shared?

Then I get ld errors:

Undefined   first referenced
 symbol in file
url_open
/usr/local/lib/libltapi12.a(sgmlfiles.o)
Fprintf /usr/local/lib/libltapi12.a(sgmllib.o)
strcasecmp8
/usr/local/lib/libltapi12.a(sgmlparse.o)
url_merge   /usr/local/lib/libltapi12.a(dtd.o)
Toupper /usr/local/lib/libltapi12.a(query.o)
LTSTD_set_error_handler /usr/local/lib/libltapi12.a(sgmllib.o)
LTSTDError  /usr/local/lib/libltapi12.a(sgmllib.o)
CharacterEncodingName
/usr/local/lib/libltapi12.a(sgmlfiles.o)



--
 Allan McIntosh, Software Designer
 http://www.atreus-systems.com
 Phone: (613) 233-1741, (800) 764-5514 Ext 217
--



___
Libtool mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/libtool