Re: [SOLVED] RE: [ANNOUNCEMENT] NEW: libtool-2.2.2-2 / Updated: libltdl7-2.2.2-2

2008-10-16 Thread Yaakov (Cygwin Ports)
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

Dave Korn wrote:
   Uh, no, not sure what you're referring to; got a reference?

http://cygwin.com/ml/cygwin/2008-04/msg00378.html

   Another thought occurs: does that work for cross-compilation?

You can't use /usr/bin/libtool for cross-compilation (it is coded for
the i686-pc-cygwin toolchain), but the above OBJDUMP patch uses
AC_CHECK_TOOL, so it should be fine for configure-generated libtools.

   This would only apply to w32api files, yes?

Yes, because lib/w32api is the only directory in the standard linker
path that isn't standard to other systems.

   Well that certainly is a problem with lib-link.m4.  Perhaps libtool should
 mark sys_lib_search_path_spec read-only?  Or would that just cause a failure
 later down the line?

I would think the latter.  I'm testing the attached patch against 0.17.

   Ok, now I've got one for you :-)  Got any idea why libtool isn't including
 the typeinfo from my shared libstdc++ when it generates the import library?
 (If you do have any insight into this area, we should probably start a
 separate thread.)

Not without a .cygport and patches, together with some more details. :-)


Yaakov
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEUEAREIAAYFAkj3CkcACgkQpiWmPGlmQSOXuwCcD0vQxqpPviG9hec9kIDqJA2f
IUQAl02HUn7oJj5LziVueql0kysd73w=
=lpJm
-END PGP SIGNATURE-
--- origsrc/gettext-0.17/gettext-tools/misc/autopoint.in	2007-11-06 20:53:58.0 -0600
+++ src/gettext-0.17/gettext-tools/misc/autopoint.in	2008-10-12 23:14:20.306696700 -0500
@@ -294,6 +294,7 @@
   0.15 | \
   0.16 | 0.16.1 | \
   0.17 )
+ver=$version
 ;;
   *)
 func_fatal_error The AM_GNU_GETTEXT_VERSION declaration in your $configure_in\

--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ:   http://cygwin.com/faq/

RE: [SOLVED] RE: [ANNOUNCEMENT] NEW: libtool-2.2.2-2 / Updated: libltdl7-2.2.2-2

2008-10-13 Thread Dave Korn
Yaakov (Cygwin Ports) wrote on 13 October 2008 04:52:

 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA256
 
 Dave Korn wrote:
   Yep, you've got it.  The problem is that OBJDUMP is not set to
 anything, and so the regexes all fail pretty hard.  And the reason that
 OBJDUMP is not set to anything is due to this very common idiom in GNU
 projects that exercise recursive makes:
 
 Actually, I hate to burst your bubble, but I think that this is not the
 reason.  Remember that I fixed the missing OBJDUMP defines, and Chuck
 included those patches in 2.2.2-2 and pushed them upstream.  

  Uh, no, not sure what you're referring to; got a reference?  Hmm, I see an
OBJDUMP=objdump definition near the top of usr/bin/libtool.  I /thought/ I'd
been using uptodate libtool to build gcc packages (I do that on my home PC and
I'm at work now so can't check), but I guess I can infer that I must not have
been after all; I'm absolutely certain the only problem I had was no
definition of objdump (the symptoms are immediately distinguishable when you
see the output running under bash -x.)

  Another thought occurs: does that work for cross-compilation?

 /usr/lib /lib/w32api /lib /usr/local/lib.  However, since
 AM_GNU_GETTEXT (or AM_ICONV) is invariably called *after*
 AC_PROG_LIBTOOL/LT_INIT, the correct value is clobbered, and suddenly
 libtool can't find a library that the linker can.

  This would only apply to w32api files, yes?

 Thoughts?

  Well that certainly is a problem with lib-link.m4.  Perhaps libtool should
mark sys_lib_search_path_spec read-only?  Or would that just cause a failure
later down the line?

  Ok, now I've got one for you :-)  Got any idea why libtool isn't including
the typeinfo from my shared libstdc++ when it generates the import library?
(If you do have any insight into this area, we should probably start a
separate thread.)

cheers,
  DaveK
-- 
Can't think of a witty .sigline today


--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ:   http://cygwin.com/faq/



Re: [SOLVED] RE: [ANNOUNCEMENT] NEW: libtool-2.2.2-2 / Updated: libltdl7-2.2.2-2

2008-10-12 Thread Yaakov (Cygwin Ports)
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

Dave Korn wrote:
   Yep, you've got it.  The problem is that OBJDUMP is not set to anything, and
 so the regexes all fail pretty hard.  And the reason that OBJDUMP is not set
 to anything is due to this very common idiom in GNU projects that exercise
 recursive makes:

Actually, I hate to burst your bubble, but I think that this is not the
reason.  Remember that I fixed the missing OBJDUMP defines, and Chuck
included those patches in 2.2.2-2 and pushed them upstream.  AFAICS, the
problem is, once again, gettext.

Old versions of lib-link.m4 (pre-0.12) define sys_lib_search_path_spec
from config.rpath output, and for Cygwin sets it to /lib /usr/lib
/usr/local/lib. (Which also happens to be the default value in libtool,
and was a red herring causing me to look into libtool itself as the
problem instead of something else.)  But libtool-2.2 uses that variable
to know where to look for libraries by default, and sets it on Cygwin to
/usr/lib /lib/w32api /lib /usr/local/lib.  However, since
AM_GNU_GETTEXT (or AM_ICONV) is invariably called *after*
AC_PROG_LIBTOOL/LT_INIT, the correct value is clobbered, and suddenly
libtool can't find a library that the linker can.

This explains why:
1) this happened only sporadically (not every package uses
AM_GNU_GETTEXT or AM_ICONV);
2) there was a difference in behaviour between libtool generated by
config.lt (with LT_OUTPUT) and the libtool generated by config.status at
the end of configure (only the latter was poisoned).

Now, I mentioned before that there were other such conflicts with this
macro; they were fixed in gettext, but only before 0.17.  Since
autopoint will pull in the exact version of the macros specified in
AM_GNU_GETTEXT_VERSION, not only must the gettext package be updated to
0.17, but packages need to be forced to use the newest version as well.

AFAICS the possible solutions are:
1) fix each package's call to AM_GNU_GETTEXT_VERSION to 0.17;
2) change autopoint to treat the value as a minimum instead of an absolute.

If the latter is possible, it would make things a lot easier than
patching configure.ac every single time (although perhaps I could
automate that with cygport).

Thoughts?


Yaakov
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEAREIAAYFAkjyxfoACgkQpiWmPGlmQSNeVQCfWth0mN1F5PUrer0I3K8kEKgq
qzAAoLjLAXhjfrxSqGDA4UDgyRkYGtQ6
=HKnN
-END PGP SIGNATURE-

--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ:   http://cygwin.com/faq/



[SOLVED] RE: [ANNOUNCEMENT] NEW: libtool-2.2.2-2 / Updated: libltdl7-2.2.2-2

2008-09-25 Thread Dave Korn
Charles Wilson wrote on 15 April 2008 00:07:

 Yaakov (Cygwin Ports) wrote:
 Charles Wilson wrote:
 Changes sine libtool2.2-2.2.2-1
 =
 o changed base package name from 'libtool2.2' to 'libtool'
 o Added patches from Yaakov Selkowitz
   http://cygwin.com/ml/cygwin/2008-04/msg00378.html
 
 Do you know why I'm getting this:
 
 *** Warning: linker path does not have real file for library -lwinmm.

  g I do!

 I think that libtool hasn't been told that LDFLAGS should include
 -L/usr/lib/w32api.  

  Nope, because as we know that's always in the default search path.  It's
nowt t'do wi' t'PATH setting.

 *** I have the capability to make that library automatically link in when
 *** you link to this library.  But I can only do this if you have a
 *** shared version of the library, which you do not appear to have
 *** because I did check the linker path looking for a file starting
 *** with libwinmm but no candidates were found. (...for file magic test)
 
 Is it the /usr/lib/w32api location that libtool is having a hard time
 with, the .a extension, or something else?
 
 No, it's not a file type or identification problem; libtool can't find
 libwinmm.a at all.

  Yep, that's correct.  You ever-so-nearly had it here:

 FWIW:
 
 $ ./func_win32_libid.sh /usr/lib/w32api/libwinmm.a
 x86 archive import
 
 So that's ok.  (func_win32_libid.sh is just func_win32_libid() from
 libtool-2.2.2-2, with the OBJDUMP/NM/etc variables set.

  Spot the missing gap in the logic?

1.  This works.
2.  This is just func_win32_libid with some variables set.
3.  Therefore func_win32_libid works.

  Given that we know the conclusion is wrong, there must be a problem with the
antecedents.  #1 can't be wrong, we saw it with our own eyes.  So it must be
#2.

  Yep, you've got it.  The problem is that OBJDUMP is not set to anything, and
so the regexes all fail pretty hard.  And the reason that OBJDUMP is not set
to anything is due to this very common idiom in GNU projects that exercise
recursive makes:

# Work around what appears to be a GNU make bug handling MAKEFLAGS
# values defined in terms of make variables, as is the case for CC and
# friends when we are called from the top level Makefile.
AM_MAKEFLAGS = \
AR_FLAGS=$(AR_FLAGS) \
CC_FOR_BUILD=$(CC_FOR_BUILD) \
CFLAGS=$(CFLAGS) \
CXXFLAGS=$(CXXFLAGS) \
CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD) \
CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET) \
INSTALL=$(INSTALL) \
  ... snip ... actual list may vary per instance ...
prefix=$(prefix) \
includedir=$(includedir) \
AR=$(AR) \
AS=$(AS) \
CC=$(CC) \
CXX=$(CXX) \
LD=$(LD) \
LIBCFLAGS=$(LIBCFLAGS) \
NM=$(NM) \
PICFLAG=$(PICFLAG) \
RANLIB=$(RANLIB) \
DESTDIR=$(DESTDIR)


  Notice anything missing?  :-)  The answer is simple enough: add a couple of
lines that read:

OBJDUMP=$(OBJDUMP) \
OBJDUMP_FOR_TARGET=$(OBJDUMP_FOR_TARGET) \

somewhere in there (I put them after NM myself but it's of no functional
relevance) in the Makefile.am, regenerate the Makefile.in, and you're away.

  Chuck, it's not a libtool bug, but there might be something worth doing
upstream: since this happens a lot in GNU software, it might be a courtesy to
replace the reference to $OBJDUMP in func_win32_libid with something else
roughly along the lines of ${OBJDUMP:-echo 'Objdump not defined'; false}
(which won't work as-is owing to the output redirections in place, but YKWIM:
something that emits an error and fails/bails).


cheers,
  DaveK
-- 
Can't think of a witty .sigline today


--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ:   http://cygwin.com/faq/



Re: [ANNOUNCEMENT] NEW: libtool-2.2.2-2 / Updated: libltdl7-2.2.2-2

2008-05-05 Thread Yaakov (Cygwin Ports)

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

Yaakov (Cygwin Ports) wrote:
| This package had AM_GNU_GETTEXT in configure.ac without any arguments
| nor AM_GNU_GETTEXT_VERSION.  autoreconf decided not using Gettext[1]
| and didn't install config.rpath[2].  But AC_LIB_RPATH (from the included
| gettext-0.11.2 lib-link.m4) was called; while nothing happened due to
| the missing config.rpath, it then defined libext=$acl_cv_libext, which
| had never been defined.  This empty $libext clobbered that of libtool.

This is worse than I originally thought.  AM_ICONV also calls AC_LIB_RPATH.

I got yet another broken libtool, this time with a unsupported hardcode
properties error.  Here's why: a different package shipped with a
0-byte config.rpath, which obviously didn't do much.  But the real
problem is with AC_LIB_RPATH itself.  In 0.15, it defines the following:

wl=$acl_cv_wl
libext=$acl_cv_libext
shlibext=$acl_cv_shlibext
hardcode_libdir_flag_spec=$acl_cv_hardcode_libdir_flag_spec
hardcode_libdir_separator=$acl_cv_hardcode_libdir_separator
hardcode_direct=$acl_cv_hardcode_direct
hardcode_minus_L=$acl_cv_hardcode_minus_L

Except for shlibext, all of the above variables can conflict with
variables by the same name in libtool.  If the config.rpath call doesn't
succeed (usually because it's nonexistant), all of these variables are
blank, which then clobbers the variables previously set by libtool.

While each of these cases should be fixed within the package, I think
the only *safe* answer is that:
1) libtool MUST protect its variables;
2) AC_LIB_RPATH should check that there was actually a result from
config.rpath before proceeding.

(And I would still patch shrext=dll.a as you suggested.)

One thing I don't understand: if you call LT_OUTPUT (which generates an
unclobbered libtool), isn't 'config.status libtool' supposed to use
config.lt to generate libtool, which should avoid these problems?

| [2] lib-link.m4 0.15 adds a line telling automake = 1.10 that
| config.rpath is required, but this package was using 1.9.  In any case,
| this macro was from 0.11.2, which preceded automake-1.10.

Lots of good that did me here, as the file was present but blank. :-(


Yaakov

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEAREIAAYFAkgf6JcACgkQpiWmPGlmQSMolwCgiEIu5ZMjD1dulA+6uix60pTm
2j0An3ogNN7lFh0Sw8rvtmwJFrOtWO+I
=DHry
-END PGP SIGNATURE-

--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ:   http://cygwin.com/faq/



Re: [ANNOUNCEMENT] NEW: libtool-2.2.2-2 / Updated: libltdl7-2.2.2-2

2008-04-24 Thread Yaakov (Cygwin Ports)

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

Chuck,

Here's yet another interesting case with libtool-2.2:

/bin/sh ../../libtool --tag=CXX --mode=link g++  -O2 -pipe-o
libfoo-1.2.la -rpath /usr/lib -no-undefined sources.lo
libtool: link: rm -fr  .libs/libfoo-1.2.dll.a .libs/libfoo-1.2.la
.libs/libfoo-1.2.lai
libtool: link: g++ -shared -nostdlib   .libs/sources.o
- -L/usr/lib/gcc/i686-pc-cygwin/3.4.4
- -L/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../.. -lstdc++ -lgcc -lcygwin
- -luser32 -lkernel32 -ladvapi32 -lshell32 -lgcc -o
.libs/cygfoo-1.2-0.dll -Wl,--enable-auto-image-base -Xlinker
- --out-implib -Xlinker .libs/libfoo-1.2.dll.a
Creating library file: .libs/libfoo-1.2.dll.a
libtool: link: ar cru .libs/libfoo-1.2.  sources.o
libtool: link: ranlib .libs/libfoo-1.2.
libtool: link: ( cd .libs  rm -f libfoo-1.2.la  ln -s
../libfoo-1.2.la libfoo-1.2.la )

In this specific case, the static library is missing the .a extension
(Windows ignores the final dot, as usual).  Here's why:

This package had AM_GNU_GETTEXT in configure.ac without any arguments
nor AM_GNU_GETTEXT_VERSION.  autoreconf decided not using Gettext[1]
and didn't install config.rpath[2].  But AC_LIB_RPATH (from the included
gettext-0.11.2 lib-link.m4) was called; while nothing happened due to
the missing config.rpath, it then defined libext=$acl_cv_libext, which
had never been defined.  This empty $libext clobbered that of libtool.

In this case, the solution was simply to call AM_GNU_GETTEXT_VERSION.
But this is the second case where libtool's had its variables clobbered
by other parts of configure.  Could something be done to make sure that
that can't happen?


Yaakov


[1] autoreconf decided not using Gettext because it looks solely for
AM_GNU_GETTEXT_VERSION to make that determination.  (It only looks for
AM_GNU_GETTEXT to see if one of these two is used without the other, and
emits a warning if so.)

[2] lib-link.m4 0.15 adds a line telling automake = 1.10 that
config.rpath is required, but this package was using 1.9.  In any case,
this macro was from 0.11.2, which preceded automake-1.10.

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEAREIAAYFAkgRC2sACgkQpiWmPGlmQSPDkwCfdkU3rN1Ul1YYm6yhebClVyDg
Eu0AoO+O803peOIDxLD4RFEKNIWRHvyi
=mGuQ
-END PGP SIGNATURE-

--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ:   http://cygwin.com/faq/



Re: [ANNOUNCEMENT] NEW: libtool-2.2.2-2 / Updated: libltdl7-2.2.2-2

2008-04-24 Thread cygwin

Charles Wilson wrote:

Yaakov (Cygwin Ports) wrote:

./.libs/lt-foo.c:263: warning: string length `4368' is greater than the
length `4095' ISO C99 compilers are required to support


This one can be fixed by splitting the string into two pieces. I'm 
working on a patch for that.



./.libs/lt-foo.c: In function `main':
./.libs/lt-foo.c:288: warning: implicit declaration of function 
`_setmode'


This one is already fixed in current git.


./.libs/lt-foo.c: In function `chase_symlinks':
./.libs/lt-foo.c:577: warning: implicit declaration of function 
`realpath'

./.libs/lt-foo.c:577: warning: assignment makes pointer from integer
without a cast


These two are the same issue...
(1) realpath() is invoked in a section of code that is #ifdef __CYGWIN__
(2) the wrapper source code unconditionally #includes stdlib.h
(3) cygwin's stdlib.h declares realpath.

...but it does so inside a #ifndef __STRICT_ANSI__ block. And -std=c99 
turns on __STRICT_ANSI__, while -std=gnu99 does not.


Posix says that realpath() will be declared if #include stdlib.h
Ansi says nothing about realpath(), so STRICT_ANSI requires that 
realpath is NOT declared when #include stdlib.h


I guess the cwrapper should add a section like this, for __CYGWIN__

#if defined __CYGWIN__
# if defined __STRICT_ANSI__
char *realpath (const char *, char *);
# endif
#endif

NOTE: usually you *want* the cwrapper to be compiled with the same 
CFLAGS that your target application needs.  OTOH, if you explicitly set 
your compatibility flags (-c99, _POSIX_C_SOURCE=200112L, -ansi, etc) 
too low it is possible something's going to break.


Or some pathological project could put '-Dprintf=exit' into CFLAGS.  You 
can't guard against everything.


But we ought to be compatible with c99.

--
Chuck


--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ:   http://cygwin.com/faq/



Re: [ANNOUNCEMENT] NEW: libtool-2.2.2-2 / Updated: libltdl7-2.2.2-2

2008-04-24 Thread Charles Wilson

Yaakov (Cygwin Ports) wrote:

* libtool should catch if the lt-foo.c compile fails;


Yes. I haven't tracked this one down yet.


I think I have also found a separate case of breakage when the CXX tag
is enabled, in which case LTCC is mysteriously undefined.  The results:

./libtool: line 7737: -O2: command not found
strip: './foo.exe': No such file
./libtool: line 7748: $func_ltwrapper_scriptname_result: ambiguous redirect


Well, that's not enough information at all. The c++ tests all pass, so 
I'm going to need a testcase or at least the actual project you're 
building that gives this error.


--
Chuck

--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ:   http://cygwin.com/faq/



Re: [ANNOUNCEMENT] NEW: libtool-2.2.2-2 / Updated: libltdl7-2.2.2-2

2008-04-24 Thread Charles Wilson

Yaakov (Cygwin Ports) wrote:

Here's yet another interesting case with libtool-2.2:


interesting, as in may you live in interesting times?


/bin/sh ../../libtool --tag=CXX --mode=link g++  -O2 -pipe-o
libfoo-1.2.la -rpath /usr/lib -no-undefined sources.lo
libtool: link: rm -fr  .libs/libfoo-1.2.dll.a .libs/libfoo-1.2.la
.libs/libfoo-1.2.lai
libtool: link: g++ -shared -nostdlib   .libs/sources.o
-L/usr/lib/gcc/i686-pc-cygwin/3.4.4
-L/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../.. -lstdc++ -lgcc -lcygwin
-luser32 -lkernel32 -ladvapi32 -lshell32 -lgcc -o
.libs/cygfoo-1.2-0.dll -Wl,--enable-auto-image-base -Xlinker
--out-implib -Xlinker .libs/libfoo-1.2.dll.a
Creating library file: .libs/libfoo-1.2.dll.a
libtool: link: ar cru .libs/libfoo-1.2.  sources.o
libtool: link: ranlib .libs/libfoo-1.2.
libtool: link: ( cd .libs  rm -f libfoo-1.2.la  ln -s
../libfoo-1.2.la libfoo-1.2.la )

In this specific case, the static library is missing the .a extension
(Windows ignores the final dot, as usual).  Here's why:

This package had AM_GNU_GETTEXT in configure.ac without any arguments
nor AM_GNU_GETTEXT_VERSION.  autoreconf decided not using Gettext[1]


 [1] autoreconf decided not using Gettext because it looks solely for
 AM_GNU_GETTEXT_VERSION to make that determination.  (It only looks for
 AM_GNU_GETTEXT to see if one of these two is used without the other,
 and emits a warning if so.)

Looks like a gettext bug to me. Might be fixed in 0.16+, but please 
report upstream.


and didn't install config.rpath[2]. 


 [2] lib-link.m4 0.15 adds a line telling automake = 1.10 that
 config.rpath is required, but this package was using 1.9.  In
 any case, this macro was from 0.11.2, which preceded automake-1.10.

That's bizarre.  Also, I believe that config.rpath may have a bug:

--- config.rpath2008-04-16 03:59:54.87500 -0400
+++ config.rpath2008-04-16 04:00:04.546875000 -0400
@@ -501,7 +501,7 @@
   bsdi[45]*)
 ;;
   cygwin* | mingw* | pw32*)
-shrext=.dll
+shrext=.dll.a
 ;;
   darwin* | rhapsody*)
 shrext=.dylib

because the result of config.rpath is used to probe /usr/lib, not 
/usr/bin...BUT shrext is a widely used variable, and is not namespaced. 
 No telling WHAT that change might break, which is why I haven't 
reported this as a bug.  But I did have to impose that patch in the 
alternatives cygport, because otherwise I was forced to link statically 
to libintl and libiconv.


Also, 'alternatives' is a wierd case -- I had to hack it to death since 
it's not actually a package of its own; it's really 'chkconfig'. So I 
decided not to draw any wide-ranging conclusions about config.rpath from 
any issues involving the alternative package.



But AC_LIB_RPATH (from the included
gettext-0.11.2 lib-link.m4) was called; while nothing happened due to
the missing config.rpath, it then defined libext=$acl_cv_libext, which
had never been defined.  This empty $libext clobbered that of libtool.

In this case, the solution was simply to call AM_GNU_GETTEXT_VERSION.
But this is the second case where libtool's had its variables clobbered
by other parts of configure.  Could something be done to make sure that
that can't happen?


You don't want much, do you?

This is a apparently not a libtool-2.2 issue; if gettext is broken or 
invoked incorrectly, AND shares some variables in the same namespace as 
libtool, AND clobbers them...the only thing that can be done there is to 
ensure that libtool never ever uses any variables outside the lt_ namespace.


There's been a lot of work done to try to make libtool namespace clean 
and insensitive to variables outside lt_ -- but there's still quite a 
bit to be done.  One of the problems is the .la file format is fixed, 
and the variables there are *not* in the lt_ namespace; there's no help 
for that, except a format change.


--
Chuck

--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ:   http://cygwin.com/faq/



Re: [ANNOUNCEMENT] NEW: libtool-2.2.2-2 / Updated: libltdl7-2.2.2-2

2008-04-24 Thread Yaakov (Cygwin Ports)

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

Charles Wilson wrote:
| Well, that's not enough information at all. The c++ tests all pass, so
| I'm going to need a testcase or at least the actual project you're
| building that gives this error.

.cygport attached, as well as the diff between the libtools generated by
config.lt and config.status.  Let me know if you need more info.


Yaakov
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEAREIAAYFAkgRVN8ACgkQpiWmPGlmQSMq/QCfRLGUBl4McJLhETHVo1tjIAxp
weMAoJ36OFitVIgZP2Bd2Qc8I3qAKNWS
=64qn
-END PGP SIGNATURE-
--- libtool-1   2008-04-24 22:42:28.046875000 -0500
+++ libtool-2   2008-04-24 22:41:52.609375000 -0500
@@ -1,7 +1,7 @@
 #! /bin/sh
 
 # libtool - Provide generalized library-building support services.
-# Generated automatically by config.lt (xapian-core) 1.0.6
+# Generated automatically by config.status (xapian-core) 1.0.6
 # Libtool was configured on host YAAKOV03:
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
 #
@@ -34,7 +34,7 @@
 
 
 # The names of the tagged configurations supported by this script.
-available_tags=
+available_tags=CXX 
 
 # ### BEGIN LIBTOOL CONFIG
 
@@ -129,7 +129,7 @@
 old_postuninstall_cmds=
 
 # A C compiler.
-LTCC=gcc
+LTCC=
 
 # LTCC compiler flags.
 LTCFLAGS=-O2 -pipe 
@@ -391,6 +391,20 @@
 # How to hardcode a shared library path into an executable.
 hardcode_action=immediate
 
+# The directories searched by this compiler when creating a shared library.
+compiler_lib_search_dirs=
+
+# Dependencies to place before and after the objects being linked to
+# create a shared library.
+predep_objects=
+postdep_objects=
+predeps=
+postdeps=
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=
+
 # ### END LIBTOOL CONFIG
 
 # Generated from ltmain.m4sh.
@@ -8276,3 +8290,158 @@
 # End:
 # vi:sw=2
 
+
+# ### BEGIN LIBTOOL TAG CONFIG: CXX
+
+# The linker used to build libraries.
+LD=/usr/i686-pc-cygwin/bin/ld.exe
+
+# Commands used to build an old-style archive.
+old_archive_cmds=\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$oldlib
+
+# A language specific compiler.
+CC=g++
+
+# Is the compiler the GNU compiler?
+with_gcc=yes
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag= -fno-builtin
+
+# How to pass a linker flag through the compiler.
+wl=-Wl,
+
+# Additional compiler flags for building library objects.
+pic_flag= -DDLL_EXPORT -DPIC
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=-static
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=yes
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=no
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=yes
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=\${wl}--export-dynamic
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=\${wl}--whole-archive\$convenience 
\${wl}--no-whole-archive
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object=no
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=
+
+# Commands used to build a shared archive.
+archive_cmds=\$CC -shared -nostdlib \$predep_objects \$libobjs \$deplibs 
\$postdep_objects \$compiler_flags -o \$output_objdir/\$soname 
\${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker \$lib
+archive_expsym_cmds=if test \\\x\\\`\$SED 1q \$export_symbols\\\`\\\ = 
xEXPORTS; then
+   cp \$export_symbols \$output_objdir/\$soname.def;
+  else
+   echo EXPORTS  \$output_objdir/\$soname.def;
+   cat \$export_symbols  \$output_objdir/\$soname.def;
+  fi~
+  \$CC -shared -nostdlib \$output_objdir/\$soname.def \$predep_objects 
\$libobjs \$deplibs \$postdep_objects \$compiler_flags -o 
\$output_objdir/\$soname \${wl}--enable-auto-image-base -Xlinker --out-implib 
-Xlinker \$lib
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=
+module_expsym_cmds=
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld=yes
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=unsupported
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=
+
+# Flag to hardcode $libdir into a binary during linking.
+# This must work even if $libdir does not exist
+hardcode_libdir_flag_spec=-L\$libdir
+
+# If ld is used when linking, flag to hardcode $libdir into a binary
+# during linking.  This must work even if $libdir does not exist.
+hardcode_libdir_flag_spec_ld=
+
+# Whether we need a single -rpath flag with a separated argument.

Re: [ANNOUNCEMENT] NEW: libtool-2.2.2-2 / Updated: libltdl7-2.2.2-2

2008-04-24 Thread Yaakov (Cygwin Ports)

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

Charles Wilson wrote:
| Looks like a gettext bug to me. Might be fixed in 0.16+, but please
| report upstream.

I'll admit I'm not that fluent in gettext internals.  Obviously both
macros are supposed to be present; is having only one just old
behaviour, or simply broken?

| That's bizarre.  Also, I believe that config.rpath may have a bug:
|
| -shrext=.dll
| +shrext=.dll.a
|
| because the result of config.rpath is used to probe /usr/lib, not
| /usr/bin...BUT shrext is a widely used variable, and is not namespaced.
|  No telling WHAT that change might break, which is why I haven't
| reported this as a bug.  But I did have to impose that patch in the
| alternatives cygport, because otherwise I was forced to link statically
| to libintl and libiconv.

Trust me, I've always found this extremely annoying.  The alternative
(no pun intended) is to use $(LTLIBINTL) instead of $(LIBINTL), but that
can require a lot of Makefile patching.  Fixing this would be a blessing.

AFAICS there shouldn't be any namespacing problems with shrext, because
config.rpath is run as a script, not sourced as a macro; the value is
exported as acl_cv_shlibext.  So I'd say, go for it.

| You don't want much, do you?

Of course I do. :-)

| This is a apparently not a libtool-2.2 issue; if gettext is broken or
| invoked incorrectly, AND shares some variables in the same namespace as
| libtool, AND clobbers them...the only thing that can be done there is to
| ensure that libtool never ever uses any variables outside the lt_
| namespace.
|
| There's been a lot of work done to try to make libtool namespace clean
| and insensitive to variables outside lt_ -- but there's still quite a
| bit to be done.  One of the problems is the .la file format is fixed,
| and the variables there are *not* in the lt_ namespace; there's no help
| for that, except a format change.

OK, but libext is not exported to the .la file.  Being that libext keeps
getting clobbered in different ways, I would look into namespacing it if
at all possible.


Yaakov
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEAREIAAYFAkgRXFwACgkQpiWmPGlmQSPCWwCfXDH5Fj5vN1h4dQU9X37O+Emr
YREAn3Zk+B7z+m9odHCxf7LWeT08UyyJ
=i2LD
-END PGP SIGNATURE-

--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ:   http://cygwin.com/faq/



Re: [ANNOUNCEMENT] NEW: libtool-2.2.2-2 / Updated: libltdl7-2.2.2-2

2008-04-23 Thread Yaakov (Cygwin Ports)

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

Charles Wilson wrote:
| That was fixed in libtool CVS after 2.2.2 was released:
| http://lists.gnu.org/archive/html/libtool-patches/2008-04/msg00019.html
| but this release is 'stock' libtool-2.2.2 with only your patches.

I'm not sure what's triggering this, but *sometimes* I'm getting more
than that:

./.libs/lt-foo.c:263: warning: string length `4368' is greater than the
length `4095' ISO C99 compilers are required to support
./.libs/lt-foo.c: In function `main':
./.libs/lt-foo.c:288: warning: implicit declaration of function `_setmode'
./.libs/lt-foo.c: In function `chase_symlinks':
./.libs/lt-foo.c:577: warning: implicit declaration of function `realpath'
./.libs/lt-foo.c:577: warning: assignment makes pointer from integer
without a cast
strip: './foo.exe': No such file

When this does happen, the libtool launchers 'foo' and 'foo.exe' are NOT
created in the build directory, but the real executable .libs/foo.exe is
built.


Yaakov
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEAREIAAYFAkgPsroACgkQpiWmPGlmQSOrRACdGr3iBUSF+KVg813/0M78viI2
2GYAoKVkVJnkhy641kx6uVQxYGvaO7VM
=OnNU
-END PGP SIGNATURE-

--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ:   http://cygwin.com/faq/



Re: [ANNOUNCEMENT] NEW: libtool-2.2.2-2 / Updated: libltdl7-2.2.2-2

2008-04-23 Thread Charles Wilson

Yaakov (Cygwin Ports) wrote:

I'm not sure what's triggering this, but *sometimes* I'm getting more
than that:

./.libs/lt-foo.c:263: warning: string length `4368' is greater than the
length `4095' ISO C99 compilers are required to support
./.libs/lt-foo.c: In function `main':
./.libs/lt-foo.c:288: warning: implicit declaration of function `_setmode'
./.libs/lt-foo.c: In function `chase_symlinks':
./.libs/lt-foo.c:577: warning: implicit declaration of function `realpath'
./.libs/lt-foo.c:577: warning: assignment makes pointer from integer
without a cast


What's puzzling is there is no *error* message from the compiler -- just 
warnings.



strip: './foo.exe': No such file


But obviously something went wrong.

I wonder of the string length warning is from the pre-processor, and 
then the compiler itself dies (dumps core?) without issuing an error 
message.


Does the problem -- missing wrappers -- *always* occur paired with the 
string length warning?  I can easily see the following;

  (1) the size of the wrapper script is very close to 4K
  (2) there are several embedded paths
  (3) sometimes, those paths are long enough to push the total script
  length over 4K -- and gcc-3.4.x is rude enough to fail silently.
If so, I could easily split the the script generation into two separate 
strings...


--
Chuck

--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ:   http://cygwin.com/faq/



Re: [ANNOUNCEMENT] NEW: libtool-2.2.2-2 / Updated: libltdl7-2.2.2-2

2008-04-23 Thread Yaakov (Cygwin Ports)

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

Charles Wilson wrote:
| What's puzzling is there is no *error* message from the compiler -- just
| warnings.
|
| strip: './foo.exe': No such file
|
| But obviously something went wrong.
|
| I wonder of the string length warning is from the pre-processor, and
| then the compiler itself dies (dumps core?) without issuing an error
| message.
|
| Does the problem -- missing wrappers -- *always* occur paired with the
| string length warning?  I can easily see the following;
|   (1) the size of the wrapper script is very close to 4K
|   (2) there are several embedded paths
|   (3) sometimes, those paths are long enough to push the total script
|   length over 4K -- and gcc-3.4.x is rude enough to fail silently.
| If so, I could easily split the the script generation into two separate
| strings...

OK, I figured it out: libtool-2.2 adds CFLAGS to LTCFLAGS, which it uses
to compile the lt-foo.c files.  Many configure scripts add to CFLAGS,
but usually after all the standard initializations.  With 1.5, or with
2.2 and LT_OUTPUT, libtool would be generated before CFLAGS is altered
beyond the default (-O2 -pipe with cygport).  But with 2.2 without
LT_OUTPUT, the package CFLAGS are added to LTCFLAGS, sometimes with
disastrous consequences.

The broken case was being compiled with the following CFLAGS:

CFLAGS = ... -Wall -Werror -pedantic -std=c99 -D_POSIX_C_SOURCE=200112L

* -Wall produces the _setmode warning;
* -std=c99 produces the realpath and ptr2int warnings;
* -pedantic produces the string length warning;
* -Werror makes sure that the build fails, but libtool doesn't catch it.

This is definitely a regression from 1.5, the problems being:

* libtool should generate lt-foo.c files without warnings, or at least
compile it with sane CFLAGS that work no matter what.
* libtool should catch if the lt-foo.c compile fails;

I think I have also found a separate case of breakage when the CXX tag
is enabled, in which case LTCC is mysteriously undefined.  The results:

./libtool: line 7737: -O2: command not found
strip: './foo.exe': No such file
./libtool: line 7748: $func_ltwrapper_scriptname_result: ambiguous redirect

Hopefully this gives you enough to figure out where these bugs really are.


Yaakov
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEAREIAAYFAkgQEz4ACgkQpiWmPGlmQSMlCACcCUE3QzUDDTl1cgpeRQOIPhMf
N4gAoNCWgSfvzFeCu7YqtqqYJROcy46L
=cdxV
-END PGP SIGNATURE-

--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ:   http://cygwin.com/faq/



Re: [ANNOUNCEMENT] NEW: libtool-2.2.2-2 / Updated: libltdl7-2.2.2-2

2008-04-15 Thread Yaakov (Cygwin Ports)

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

Charles Wilson wrote:
| Changes sine libtool2.2-2.2.2-1
| =

I'm also seeing these warnings (where 'foo' is the executable being
linked against a yet-uninstalled libtool library):

./.libs/lt-foo.c: In function `main':
./.libs/lt-foo.c:288: warning: implicit declaration of function `_setmode'
./.libs/lt-foo.c:288: warning: nested extern declaration of `_setmode'


Yaakov
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.5 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFIBEWspiWmPGlmQSMRCICoAKDfm4XnxQYfrtX5K33uGXe7/wRZWgCcCQeJ
uDgAASd1HHxPHP10WVa5K3c=
=OTul
-END PGP SIGNATURE-

--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ:   http://cygwin.com/faq/



Re: [ANNOUNCEMENT] NEW: libtool-2.2.2-2 / Updated: libltdl7-2.2.2-2

2008-04-15 Thread Charles Wilson

Yaakov (Cygwin Ports) wrote:

Charles Wilson wrote:
| I think that libtool hasn't been told that LDFLAGS should include
| -L/usr/lib/w32api.  I think this is something that should be passed on
| the invocation line in your makefile -- maybe AM_LDFLAGS needs to be set?

As I'm sure you're aware, /usr/lib/w32api is in ld's default library
path, so -L/usr/lib/w32api should never be necessary.


unless -nostdlib, right?  Which libtool uses. Besides, I don't know of a 
way to get ld to print its search path (which is why Brian grep'ed the 
binary) like gcc's -print-search-dirs. So libtool has no mechanism to 
obtain this info -- other than hardcoded variables like 
sys_lib_search_path_spec.


And libtool needs this info, obviously, because it does this 
'pre-screening' stuff on dependencies -- is it a static archive, is it 
this, is it that, etc -- so it has to know where to look.


But you're right: it IS hardcoded, so what ld or gcc thinks is immaterial.

 Nor was it

required with libtool-1.5; this is a regression, but I'm not sure what
the cause is.

In /usr/bin/libtool, I see the following:

sys_lib_search_path_spec=/usr/lib /lib/w32api /lib /usr/local/lib

which is hard-coded for cygwin in _LT_SYS_DYNAMIC_LINKER (prev.
AC_LIBTOOL_SYS_DYNAMIC_LINKER).  But with the libtool script in the
package I'm trying to build, I find:

sys_lib_search_path_spec=/lib /usr/lib /usr/local/lib


this is the default setting of sys_lib_search_path_spec, established at 
the beginning of _LT_SYS_DYNAMIC_LINKER.  However, as you point out, 
sys_lib_search_path_spec is a tagged variable...


I wonder if there is some interaction here between tag support/order of 
invocation of the tag declarators -- LT_LANG(lang) or AC_PROG_lang, 
compared to when LT_OUTPUT is called.


 Both of the following examples are therefore valid ways of adding
 C++ language support to Libtool.

  LT_INIT
  LT_LANG([C++])

  LT_INIT
  AC_PROG_CXX


This didn't happen in another package, so I dug a bit further.  If I run
./config.lt in this particular package, then the correct
$sys_lib_search_path_spec appears, but when I run './config.status
libtool', then I get the latter.


Well, ordinarily you don't GET a config.lt file -- that is produced only 
when you use LT_OUTPUT.  The bug is:


 Also, when `LT_OUTPUT' is used, for backwards compatibility with
 Automake regeneration rules, `config.status' will call `config.lt'
 to regenerate `libtool', rather than generating the file itself.

So, 'config.status libtool' ought to delegate to config.lt in your case, 
which should, in a sane world, generate the same libtool script as 
calling config.lt directly.


Either your config.status is NOT delegating to config.lt, or...the 
world's gone MAD. (Or maybe config.status is mucking up the environment 
before calling config.lt...)



Both packages use CC and CXX tags, and but the one that works correctly
had warnings during autoreconf:

configure.ac:169: warning: LT_OUTPUT was called before LT_LANG
/usr/share/aclocal/libtool.m4:775: LT_LANG is expanded from...
configure.ac:169: the top level
/usr/share/aclocal/libtool.m4:5282: _LT_PROG_CXX is expanded from...
/usr/share/aclocal/libtool.m4:5305: _LT_LANG_CXX_CONFIG is expanded from...
/usr/share/aclocal/libtool.m4:792: _LT_LANG is expanded from...
autoreconf-2.61: configure.ac: tracing
configure.ac:169: warning: LT_OUTPUT was called before LT_LANG
aclocal.m4:790: LT_LANG is expanded from...
configure.ac:169: the top level

where the package with the buggy libtool had no such warnings.


1) do both packages use LT_OUTPUT
2) does either package explicitly call AC_PROG_CXX/LT_LANG([C++])
3) if so, when? before LT_INIT, before LT_OUTPUT, or after?

Somehow, the buggy version is NOT initializing sys_lib_search_path_spec 
to the proper value for this arch+tag; instead, it's using the default 
value for all arch and all tags.



Any ideas?


 -- Macro: LT_OUTPUT
 ...  You
 can add `LT_OUTPUT' to your `configure.ac' any time after
 `LT_INIT' and any `LT_LANG' calls; that done, `libtool' will be
 created by a specially generated `config.lt' file, and available
 for use in later tests.

Make sure LT_LANG calls (*and* AC_PROG_lang ?) appear after LT_INIT but 
before LT_OUTPUT ?


--
Chuck

--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ:   http://cygwin.com/faq/



Re: [ANNOUNCEMENT] NEW: libtool-2.2.2-2 / Updated: libltdl7-2.2.2-2

2008-04-15 Thread Charles Wilson

Yaakov (Cygwin Ports) wrote:

Charles Wilson wrote:
| Changes sine libtool2.2-2.2.2-1
| =

I'm also seeing these warnings (where 'foo' is the executable being
linked against a yet-uninstalled libtool library):

./.libs/lt-foo.c: In function `main':
./.libs/lt-foo.c:288: warning: implicit declaration of function `_setmode'
./.libs/lt-foo.c:288: warning: nested extern declaration of `_setmode'


That was fixed in libtool CVS after 2.2.2 was released:
http://lists.gnu.org/archive/html/libtool-patches/2008-04/msg00019.html
but this release is 'stock' libtool-2.2.2 with only your patches.

--
Chuck

--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ:   http://cygwin.com/faq/



Re: [ANNOUNCEMENT] NEW: libtool-2.2.2-2 / Updated: libltdl7-2.2.2-2

2008-04-15 Thread Brian Dessent
Charles Wilson wrote:

 way to get ld to print its search path (which is why Brian grep'ed the
 binary) like gcc's -print-search-dirs. So libtool has no mechanism to

I grepped the default linker script which is a plain text file.  This
can be done programmatically by adding -Wl,-verbose to a test link which
prints the output of the linker script used.  Note that the linker
script used depends on the linker options, but I don't think libtool
supports relocatable links (-r) or anything exotic like that so it
shouldn't matter; and in any case all the stock PE linker scripts have
the same SEARCH_DIRs at the top.

Brian

--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ:   http://cygwin.com/faq/



[ANNOUNCEMENT] NEW: libtool-2.2.2-2 / Updated: libltdl7-2.2.2-2

2008-04-14 Thread Charles Wilson

GNU libtool is a generic library support script. Libtool hides the
complexity of using shared libraries behind a consistent, portable
interface.

This update represents a name change from the previous 'libtool2.2' 
package, to the new 'libtool' package (the embedded version number '2.2' 
has been dropped).  This is a TEST release, and is only available by 
choosing the 'test' version from setup's chooser menu.


Normally, 'test' releases are not announced in this manner. However, 
this one replaces and obsoletes an existing, non-test package 
(libtool2.2), so the announcement is appropriate.


Both the (now obsolete) libtool2.2 package and the new libtool package 
(at least, the ones derived from libtool-2.2 source) provide a libltdl7 
subpackage, which is why that package is 'updated' and not 'new'.


Note that both libltdl3 (from the libtool-1.5.x series) and libltdl7 
(from this libtool-2.2.x series) can be installed at the same time, 
without conflict.


Changes sine libtool2.2-2.2.2-1
=
o changed base package name from 'libtool2.2' to 'libtool'
o Added patches from Yaakov Selkowitz
  http://cygwin.com/ml/cygwin/2008-04/msg00378.html

--
Chuck



To update your installation, click on the Install Cygwin now link on
the http://cygwin.com/ web page.  This downloads setup.exe to your
system.  Then, run setup and answer all of the questions.


*** CYGWIN-ANNOUNCE UNSUBSCRIBE INFO ***

If you want to unsubscribe from the cygwin-announce mailing list, look
at the List-Unsubscribe:  tag in the email header of this message.
Send email to the address specified there.  It will be in the format:


[EMAIL PROTECTED]

If you need more information on unsubscribing, start reading here:

http://sources.redhat.com/lists.html#unsubscribe-simple

Please read *all* of the information on unsubscribing that is available
starting at this URL.

--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ:   http://cygwin.com/faq/



Re: [ANNOUNCEMENT] NEW: libtool-2.2.2-2 / Updated: libltdl7-2.2.2-2

2008-04-14 Thread Yaakov (Cygwin Ports)

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

Charles Wilson wrote:
| Changes sine libtool2.2-2.2.2-1
| =
| o changed base package name from 'libtool2.2' to 'libtool'
| o Added patches from Yaakov Selkowitz
|   http://cygwin.com/ml/cygwin/2008-04/msg00378.html

Do you know why I'm getting this:

*** Warning: linker path does not have real file for library -lwinmm.
*** I have the capability to make that library automatically link in when
*** you link to this library.  But I can only do this if you have a
*** shared version of the library, which you do not appear to have
*** because I did check the linker path looking for a file starting
*** with libwinmm but no candidates were found. (...for file magic test)

Is it the /usr/lib/w32api location that libtool is having a hard time
with, the .a extension, or something else?


Yaakov

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.5 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFIA6pHpiWmPGlmQSMRCNhlAJ974LK/Ca4TnIYWNgq2bX2a9JVSZACcCMMf
5GycY0mZt9zNB/o3Us0DngU=
=Irvq
-END PGP SIGNATURE-

--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ:   http://cygwin.com/faq/



Re: [ANNOUNCEMENT] NEW: libtool-2.2.2-2 / Updated: libltdl7-2.2.2-2

2008-04-14 Thread Charles Wilson

Yaakov (Cygwin Ports) wrote:

Charles Wilson wrote:
| Changes sine libtool2.2-2.2.2-1
| =
| o changed base package name from 'libtool2.2' to 'libtool'
| o Added patches from Yaakov Selkowitz
|   http://cygwin.com/ml/cygwin/2008-04/msg00378.html

Do you know why I'm getting this:

*** Warning: linker path does not have real file for library -lwinmm.


I think that libtool hasn't been told that LDFLAGS should include 
-L/usr/lib/w32api.  I think this is something that should be passed on 
the invocation line in your makefile -- maybe AM_LDFLAGS needs to be set?



*** I have the capability to make that library automatically link in when
*** you link to this library.  But I can only do this if you have a
*** shared version of the library, which you do not appear to have
*** because I did check the linker path looking for a file starting
*** with libwinmm but no candidates were found. (...for file magic test)

Is it the /usr/lib/w32api location that libtool is having a hard time
with, the .a extension, or something else?


No, it's not a file type or identification problem; libtool can't find 
libwinmm.a at all.


FWIW:

$ ./func_win32_libid.sh /usr/lib/w32api/libwinmm.a
x86 archive import

So that's ok.  (func_win32_libid.sh is just func_win32_libid() from 
libtool-2.2.2-2, with the OBJDUMP/NM/etc variables set.


--
Chuck



#!/bin/bash

ECHO=echo
OBJDUMP=objdump
EGREP=grep -E
SED=sed
NM=nm

func_win32_libid ()
{
  $opt_debug
  win32_libid_type=unknown
  win32_fileres=`file -L $1 2/dev/null`
  case $win32_fileres in
  *ar\ archive\ import\ library*) # definitely import
win32_libid_type=x86 archive import
;;
  *ar\ archive*) # could be an import, or static
if eval $OBJDUMP -f $1 | $SED -e '10q' 2/dev/null |
   $EGREP 'file format pe-i386(.*architecture: i386)?' /dev/null ; then
  win32_nmres=`eval $NM -f posix -A $1 |
$SED -n -e '
1,100{
/ I /{
s,.*,import,
p
q
}
}'`
  case $win32_nmres in
  import*)  win32_libid_type=x86 archive import;;
  *)win32_libid_type=x86 archive static;;
  esac
fi
;;
  *DLL*)
win32_libid_type=x86 DLL
;;
  *executable*) # but shell scripts are executable too...
case $win32_fileres in
*MS\ Windows\ PE\ Intel*)
  win32_libid_type=x86 DLL
  ;;
esac
;;
  esac
  $ECHO $win32_libid_type
}

for fn in $@ ; do
  func_win32_libid $fn
done

--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ:   http://cygwin.com/faq/

Re: [ANNOUNCEMENT] NEW: libtool-2.2.2-2 / Updated: libltdl7-2.2.2-2

2008-04-14 Thread Yaakov (Cygwin Ports)

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

Charles Wilson wrote:
| I think that libtool hasn't been told that LDFLAGS should include
| -L/usr/lib/w32api.  I think this is something that should be passed on
| the invocation line in your makefile -- maybe AM_LDFLAGS needs to be set?

As I'm sure you're aware, /usr/lib/w32api is in ld's default library
path, so -L/usr/lib/w32api should never be necessary.  Nor was it
required with libtool-1.5; this is a regression, but I'm not sure what
the cause is.

In /usr/bin/libtool, I see the following:

sys_lib_search_path_spec=/usr/lib /lib/w32api /lib /usr/local/lib

which is hard-coded for cygwin in _LT_SYS_DYNAMIC_LINKER (prev.
AC_LIBTOOL_SYS_DYNAMIC_LINKER).  But with the libtool script in the
package I'm trying to build, I find:

sys_lib_search_path_spec=/lib /usr/lib /usr/local/lib

This didn't happen in another package, so I dug a bit further.  If I run
./config.lt in this particular package, then the correct
$sys_lib_search_path_spec appears, but when I run './config.status
libtool', then I get the latter.

Both packages use CC and CXX tags, and but the one that works correctly
had warnings during autoreconf:

configure.ac:169: warning: LT_OUTPUT was called before LT_LANG
/usr/share/aclocal/libtool.m4:775: LT_LANG is expanded from...
configure.ac:169: the top level
/usr/share/aclocal/libtool.m4:5282: _LT_PROG_CXX is expanded from...
/usr/share/aclocal/libtool.m4:5305: _LT_LANG_CXX_CONFIG is expanded from...
/usr/share/aclocal/libtool.m4:792: _LT_LANG is expanded from...
autoreconf-2.61: configure.ac: tracing
configure.ac:169: warning: LT_OUTPUT was called before LT_LANG
aclocal.m4:790: LT_LANG is expanded from...
configure.ac:169: the top level

where the package with the buggy libtool had no such warnings.

Any ideas?

| $ ./func_win32_libid.sh /usr/lib/w32api/libwinmm.a
| x86 archive import

That's good to know.


Yaakov

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.5 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFIBBTapiWmPGlmQSMRCKi1AKD3rbfJKHjtOEKwIaXCu4pajiMDKQCg7pG2
64NcQWMFaGoEb9t3V8dmFX4=
=79fv
-END PGP SIGNATURE-

--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ:   http://cygwin.com/faq/



Re: [ANNOUNCEMENT] NEW: libtool-2.2.2-2 / Updated: libltdl7-2.2.2-2

2008-04-14 Thread Brian Dessent
Charles Wilson wrote:

 I think that libtool hasn't been told that LDFLAGS should include
 -L/usr/lib/w32api.  I think this is something that should be passed on
 the invocation line in your makefile -- maybe AM_LDFLAGS needs to be set?

But the linker searches this location by default:

$ grep SEARCH_DIR /usr/lib/ldscripts/i386pe.x
SEARCH_DIR(/usr/i686-pc-cygwin/lib); SEARCH_DIR(/usr/local/lib);
SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/lib/w32api);

Shouldn't libtool be able to divine this information automatically? 
Likewise, having to specify -L/usr/lib/w32api anywhere in any *FLAGS
seems wrong since it's a system location, just like you'd never expect
to have to add -L/usr/lib to *FLAGS.

Brian

--
Unsubscribe info:  http://cygwin.com/ml/#unsubscribe-simple
Problem reports:   http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ:   http://cygwin.com/faq/