Re: Problems with libtool 2.2.2 and /bin/sh pointing to dash

2008-04-21 Thread Ralf Wildenhues
Hello Richard,

* Richard Purdie wrote on Tue, Apr 22, 2008 at 01:07:48AM CEST:
> 
> I've had reports of Poky breaking with libtool 2.2.2 and have isolated
> this to people using dash as their /bin/sh provider (Poky runs the
> configure script with /bin/sh). When used in this combination, the
> global_symbol_pipe expression becomes corrupted in the generated libtool
> file amongst other things and I've included a diff of the corruption
> below. I noticed this with gtk+ 2.12.7. 

That typically means that the configure script is run with a different
shell than the libtool script.  Beware: the configure script might
restart itself under a different shell, exporting CONFIG_SHELL.

I can successfully configure and use libtool with
  CONFIG_SHELL=/bin/dash /bin/dash ./configure -C
  make

but for example if you configure with /bin/sh pointing to bash, then
later switch the /bin/sh symlink to dash, you're giving libtool a hard
time.  If that wasn't the case, then please show how to reproduce this
situation.  For that, your $PATH, the /bin/sh symlink, your $SHELL, and
eventual $CONFIG_SHELL values are important to see, as well as how
exactly you configure and build the package.

I haven't checked whether gtk+ 2.12.7 munges with the shell setting in
its configure script.

> gtk+ also has the issues that it tries to run libtool before its been
> generated and I've had to patch this to run a previously generated
> version of libtool poky has around to solve cases like this. I'm not
> sure if there is a neater way to address that problem?

Gary has already addressed this part.

Cheers,
Ralf


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


Re: Problems with libtool 2.2.2 and /bin/sh pointing to dash

2008-04-21 Thread Gary V. Vaughan

Hi Richard,

On 21 Apr 2008, at 19:07, Richard Purdie wrote:

gtk+ also has the issues that it tries to run libtool before its been
generated and I've had to patch this to run a previously generated
version of libtool poky has around to solve cases like this. I'm not
sure if there is a neater way to address that problem?



   Starting with libtool 2.0, the multipass generation of the libtool
script has been consolidated into a single `config.status' pass, which
happens after all the code in `configure.ac' has completed.  The
implication of this is that the libtool script does not exist during
execution of code from `configure.ac', and so obviously it cannot be
called for `--config' details anymore.  If you are upgrading projects
that used this idiom to libtool 2.0 or newer, you should replace those
calls with direct references to the equivalent Autoconf shell variables
that are set by the configure time tests before being passed to
`config.status' for inclusion in the generated libtool script.

 -- Macro: LT_OUTPUT
 By default, the configured `libtool' script is generated by the
 call to `AC_OUTPUT' command, and there is rarely any need to use
 `libtool' from `configure'.  However, sometimes it is necessary to
 run configure time compile and link tests using `libtool'.  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.

 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.

Cheers,
Gary
--
  ())_.  Email me: [EMAIL PROTECTED]
  ( '/   Read my blog: http://blog.azazil.net
  / )= ...and my book: http://sources.redhat.com/autobook
`(_~)_






PGP.sig
Description: This is a digitally signed message part
___
http://lists.gnu.org/mailman/listinfo/libtool


Problems with libtool 2.2.2 and /bin/sh pointing to dash

2008-04-21 Thread Richard Purdie
Hi,

I've had reports of Poky breaking with libtool 2.2.2 and have isolated
this to people using dash as their /bin/sh provider (Poky runs the
configure script with /bin/sh). When used in this combination, the
global_symbol_pipe expression becomes corrupted in the generated libtool
file amongst other things and I've included a diff of the corruption
below. I noticed this with gtk+ 2.12.7. 

gtk+ also has the issues that it tries to run libtool before its been
generated and I've had to patch this to run a previously generated
version of libtool poky has around to solve cases like this. I'm not
sure if there is a neater way to address that problem?

Regards,

Richard

--- libtool-bash2008-04-21 17:57:40.0 +0100
+++ libtool-dash2008-04-21 23:36:38.0 +0100
@@ -1,4 +1,4 @@
-#! /bin/sh
+#! /bin/bash
 
 # arm-poky-linux-gnueabi-libtool - Provide generalized library-building 
support services.
 # Generated automatically by config.status (gtk+) 2.12.7
@@ -107,10 +107,10 @@
 lt_unset=unset
 
 # turn spaces into newlines.
-SP2NL="tr \\040 \\012"
+SP2NL="tr \040 \012"
 
 # turn newlines into spaces.
-NL2SP="tr \\015\\012 \\040\\040"
+NL2SP="tr \015\012 \040\040"
 
 # How to create reloadable object files.
 reload_flag=" -r"
@@ -141,22 +141,22 @@
 LTCFLAGS="-fexpensive-optimizations -fomit-frame-pointer -frename-registers 
-O2 -Wall"
 
 # Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe="sed -n -e 's/^.*[   ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[  
 ][  ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p'"
+global_symbol_pipe="sed -n -e 's/^.*[   ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[  
 ][  ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/  /p'"
 
 # Transform the output of nm in a proper C declaration.
-global_symbol_to_cdecl="sed -n -e 's/^T .* \\(.*\\)\$/extern int \\1();/p' -e 
's/^[ABCDGIRSTW]* .* \\(.*\\)\$/extern char \\1;/p'"
+global_symbol_to_cdecl="sed -n -e 's/^T .* \\(.*\\)\$/extern int ();/p' -e 
's/^[ABCDGIRSTW]* .* \\(.*\\)\$/extern char ;/p'"
 
 # Transform the output of nm in a C name address pair.
-global_symbol_to_c_name_address="sed -n -e 's/^: \\([^ ]*\\) \$/  
{\\\"\\1\\\", (void *) 0},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\([^ ]*\\)\$/  
{\"\\2\", (void *) \\&\\2},/p'"
+global_symbol_to_c_name_address="sed -n -e 's/^: \\([^ ]*\\) \$/  {\\\"\\\", 
(void *) 0},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\([^ ]*\\)\$/  {\"\", (void 
*) \\&},/p'"
 
 # Transform the output of nm in a C name address pair when lib prefix is 
needed.
-global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \\([^ ]*\\) \$/  
{\\\"\\1\\\", (void *) 0},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\(lib[^ 
]*\\)\$/  {\"\\2\", (void *) \\&\\2},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\([^ 
]*\\)\$/  {\"lib\\2\", (void *) \\&\\2},/p'"
+global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \\([^ ]*\\) \$/  
{\\\"\\\", (void *) 0},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\(lib[^ ]*\\)\$/  
{\"\", (void *) \\&},/p' -e 's/^[ABCDGIRSTW]* \\([^ ]*\\) \\([^ ]*\\)\$/  
{\"lib\", (void *) \\&},/p'"
 
 # The name of the directory that contains temporary libtool files.
 objdir=.libs
 
 # Shell to use when invoking shell scripts.
-SHELL="/bin/sh"
+SHELL="/bin/bash"
 
 # An echo program that does not interpret backslashes.
 ECHO="echo"
@@ -301,7 +301,7 @@
 # Commands used to build a shared archive.
 archive_cmds="\$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname 
\$wl\$soname -o \$lib"
 archive_expsym_cmds="echo \\\"{ global:\\\" > \$output_objdir/\$libname.ver~
-   cat \$export_symbols | sed -e \\\"s/(.*)/1;/\\\" >> 
\$output_objdir/\$libname.ver~
+   cat \$export_symbols | sed -e \\\"s/(.*)/;/\\\" >> 
\$output_objdir/\$libname.ver~
echo \\\"local: *; };\\\" >> \$output_objdir/\$libname.ver~
\$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname 
\$wl\$soname \${wl}-version-script \${wl}\$output_objdir/\$libname.ver -o \$lib"
 



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


Re: silencing libtool and automake

2008-04-21 Thread Bob Friesenhahn

On Mon, 21 Apr 2008, Joachim Worringen wrote:



We use libtool/automake/configure for our builds, but autotools-builds are 
pretty verbose, which is not always desired. I checked that by adding the "@" 
silencer in the Makefiles and calling libtool with "--silent" we get what we 
want.


Using current FSF released software and adding --silent to the libtool 
options, I obtain complete silence (other than compiler 
warnings/errors) via 'make -s'.


Based on the above, it seems likely that you are not using the current 
releases of the software.


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: move to git

2008-04-21 Thread Jim Meyering
"Dan Nicholson" <[EMAIL PROTECTED]> wrote:
> On Sat, Apr 19, 2008 at 2:53 AM, Jim Meyering <[EMAIL PROTECTED]> wrote:
>>
>> Ralf Wildenhues <[EMAIL PROTECTED]> wrote:
>>
>>  > I don't quite understand what happened.  With the repo converted from
>>  > CVS, the tag SHAs were all different, but they already pointed to the
>>  > same tree object.  After the filter-branch rewrite, they now all have
>>  > the same SHA.  I suspect the bug happens earlier.  Jim, can you take
>>  > a look?
>>
>>  Hi Ralf,
>>  I'm beginning to think that our time might be better spent
>>  investigating an alternate conversion method: cvs2git.
>>  Unfortunately, I might not have time for that right away.
>
> Just a thought, but nearly all of the freedesktop.org projects
> (including all of X) were converted using Keith Packard's parsecvs
> tool. I haven't heard of anyone complaining of incorrect history.
>
> http://gitweb.freedesktop.org/?p=users/keithp/parsecvs.git;a=summary

That's exactly what I used.
Note however, that parsecvs is not robust.
With a slightly unusual ,v file, it's easy to make it segfault.
I've encountered at least 3 repositories that it is unable to convert.
I think cvs2git will be better.

BTW, I suspect that parsecvs is unmaintained, since my recent patch
to make it work with newer versions of git has evoked no reply,
and the patch has not appeared in the repository.


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


Re: move to git

2008-04-21 Thread Dan Nicholson
On Sat, Apr 19, 2008 at 2:53 AM, Jim Meyering <[EMAIL PROTECTED]> wrote:
>
> Ralf Wildenhues <[EMAIL PROTECTED]> wrote:
>
>  > I don't quite understand what happened.  With the repo converted from
>  > CVS, the tag SHAs were all different, but they already pointed to the
>  > same tree object.  After the filter-branch rewrite, they now all have
>  > the same SHA.  I suspect the bug happens earlier.  Jim, can you take
>  > a look?
>
>  Hi Ralf,
>  I'm beginning to think that our time might be better spent
>  investigating an alternate conversion method: cvs2git.
>  Unfortunately, I might not have time for that right away.

Just a thought, but nearly all of the freedesktop.org projects
(including all of X) were converted using Keith Packard's parsecvs
tool. I haven't heard of anyone complaining of incorrect history.

http://gitweb.freedesktop.org/?p=users/keithp/parsecvs.git;a=summary

--
Dan


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


Re: silencing libtool and automake

2008-04-21 Thread Ralf Wildenhues
Hello Joachim,

* Joachim Worringen wrote on Mon, Apr 21, 2008 at 11:16:05AM CEST:
>
> We use libtool/automake/configure for our builds, but autotools-builds  
> are pretty verbose, which is not always desired. I checked that by  
> adding the "@" silencer in the Makefiles and calling libtool with  
> "--silent" we get what we want.

make -s LIBTOOLFLAGS=--silent

> How can I create such Makefiles via autoreconf && configure?

Put this in configure.ac:
AC_SUBST([AM_LIBTOOLFLAGS], [--silent])

Then you need only 'make -s'.  Choosing additional '@' is currently not
supported by Automake, though there exists at least one third-party
patch to achieve similar functionality.

Cheers,
Ralf


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


silencing libtool and automake

2008-04-21 Thread Joachim Worringen


We use libtool/automake/configure for our builds, but autotools-builds 
are pretty verbose, which is not always desired. I checked that by 
adding the "@" silencer in the Makefiles and calling libtool with 
"--silent" we get what we want.


How can I create such Makefiles via autoreconf && configure?
- autoreconf honors LIBTOOLIZE env setting, but not LIBTOOL itself
- slightly off-topic: how can I tell automake to add the @-silencer? 
Preferably, this would be a controllable setting by using an env-variable.


 thanks, Joachim

--
Joachim Worringen, Software Architect, Dolphin Interconnect Solutions
phone ++49/(0)228/324 08 17 - http://www.dolphinics.com


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