Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Fwd: Re: zsh compilation problem with autoconf git



Hi Ralf,

I am forwarding your message to zsh-workers list. To summarise the issue zsh 
modules are not compiled with upcoming autoconf 2.62 and Ralf successfully 
identified that zsh/Src/mkmakemod.sh does some unportable stuff :

    # check 2.13, 2.50, and 2.60 syntaxes
    if grep '%@D@%D%' config.status >/dev/null ||
       grep ',@D@,D,' config.status >/dev/null ||
       grep ',@D@,|#_!!_#|D,' config.status >/dev/null; then
        is_dynamic=true
    else
        is_dynamic=false
    fi

So the question is, is this thing needed at all, if yes why?

-- 
Never learn by your mistakes, if you do you may never dare to try again.
--- Begin Message ---
* Ismail Dönmez wrote on Tue, Jan 29, 2008 at 09:38:33PM CET:
> 
> Sure, just grab zsh.git and create two copies of it, and do
[...]
> now if you compare zsh & zsh2 you will see that zsh directory have bunch of 
> shared objects in Src/Modules where as zsh2 have none.

Confirmed.  But with Autoconf 2.59 vs mainline, not 2.61a.
zsh/Src/mkmakemod.sh does ugly and nonsupported things such as
grepping config.status for values:

    # check 2.13, 2.50, and 2.60 syntaxes
    if grep '%@D@%D%' config.status >/dev/null ||
       grep ',@D@,D,' config.status >/dev/null ||
       grep ',@D@,|#_!!_#|D,' config.status >/dev/null; then
        is_dynamic=true
    else
        is_dynamic=false
    fi

That looks dubious, and should be fixed.  Further, I don't know why it
should be needed.  When config.status' documented interfaces are used,
there is no need to grep it.  grepping it is explicitly not supported.
Autoconf 2.62's config.status will internally work differently again as
2.61a (more efficiently), and we won't hesitate to change it in again in
every future version if changes help do things better in some way.

If zsh authors can explain why the above should be needed, we may be
able to see whether there is (or was) a bug in Autoconf to be worked
around, and then we can add that to the Autoconf test suite to ensure
that we don't regress.

I can get things to work fine with a hack as below.

Cheers,
Ralf


diff --git a/Src/mkmakemod.sh b/Src/mkmakemod.sh
index d275038..8e9cee5 100644
--- a/Src/mkmakemod.sh
+++ b/Src/mkmakemod.sh
@@ -114,7 +114,8 @@ if $first_stage; then
     # check 2.13, 2.50, and 2.60 syntaxes
     if grep '%@D@%D%' config.status >/dev/null ||
        grep ',@D@,D,' config.status >/dev/null ||
-       grep ',@D@,|#_!!_#|D,' config.status >/dev/null; then
+       grep ',@D@,|#_!!_#|D,' config.status >/dev/null ||
+       :; then
 	is_dynamic=true
     else
 	is_dynamic=false



--- End Message ---


Messages sorted by: Reverse Date, Date, Thread, Author