Skip Menu |
 

To: krb5-bugs@mit.edu
From: James A Goodwin <jagoodwi@us.ibm.com>
Date: Wed, 30 Mar 2005 12:52:20 -0600
Subject: Kerberos 1.4 will not build gssapi_krb5.h on AIX 5.2
Download (untitled) / with headers
text/plain 2.1KiB

Submitter-Id: jagoodwi@us.ibm.com
Originator: James A. Goodwin
Organization: IBM
Confidential: no
Synopsis: Kerberos 1.4 will not build
gssapi_krb5.h on AIX 5.2
Severity: serious
Priority: medium
Category: krb5-build
Class: sw-bug
Release: 1.4
Environment: AIX 5.2, C for AIX Compiler 6.0.0.0
System: pSeries 6C1
Machine: RS/6000

Description:
Initial make of Kerberos 1.4 fails with a Makefile syntax error:


making all in lib/gssapi/krb5...
/bin/sh: 0403-057 Syntax error at line 1 : `(' is not matched.
make: 1254-004 The error code from the last command is 2.


Stop.
make: 1254-004 The error code from the last command is 1.


Stop.
make: 1254-004 The error code from the last command is 1.


Stop.
make: 1254-004 The error code from the last command is 1.


Stop.


How-To-Repeat:
Perform initial extract of Kerberos 1.4 distribution, configure, and run make:

> cd /usr/local/krb5-1.4/src
> ./configure CC=cc --without-tcl --without-krb4
> make

Fix:
Update the lib/gssapi/krb5/Makefile as specified by this 'diff -c' output:

*** Makefile.orig Wed Mar 30 12:09:15 2005
--- Makefile Wed Mar 30 12:16:30 2005
***************
*** 752,764 ****
 
  ##DOS##!if 0
  gssapi_krb5.h: gssapi_krb5.hin
! @echo "Creating gssapi.h" ; \
! h=gss$$$$; $(RM) $$h; \
! (echo "/* This is the gssapi_krb5.h prologue. */"; \
! echo "$(include_stdint)" ; \
! echo "/* End of gssapi_krb5.h prologue. */"; \
! cat $(srcdir)/gssapi_krb5.hin )> $$h && \
! (set -x; $(MV) $$h $@) ; e=$$?; $(RM) $$h; exit $$e
  ##DOS##!endif
  ##DOS### No prologue needed for Windows, the support is
  ##DOS### in gssapi_krb5.hin already.
--- 752,762 ----
 
  ##DOS##!if 0
  gssapi_krb5.h: gssapi_krb5.hin
! @echo "Creating gssapi.h"
! @echo "/* This is the gssapi_krb5.h prologue. */" > $@
! @echo "$(include_stdint)" >> $@
! @echo "/* End of gssapi_krb5.h prologue. */" >> $@
! cat $(srcdir)/gssapi_krb5.hin >> $@
  ##DOS##!endif
  ##DOS### No prologue needed for Windows, the support is
  ##DOS### in gssapi_krb5.hin already.

To: rt@krbdev.mit.edu
Subject: Re: [krbdev.mit.edu #2992] Kerberos 1.4 will not build gssapi_krb5.h on AIX 5.2
From: Tom Yu <tlyu@MIT.EDU>
Date: Wed, 30 Mar 2005 16:13:00 -0500
RT-Send-Cc:
Show quoted text
>>>>> "James" == James A Goodwin via RT <rt-comment@krbdev.mit.edu> writes:

Show quoted text
James> Initial make of Kerberos 1.4 fails with a Makefile syntax error:

Show quoted text
James> making all in lib/gssapi/krb5...
James> /bin/sh: 0403-057 Syntax error at line 1 : `(' is not matched.
James> make: 1254-004 The error code from the last command is 2.

Could you please run "make -n gssapi_krb5.h" in that directory (after
making sure that gssapi_krb5.h does not exist) using the original
Makefile and send us the output? There should not be an unbalanced
left parenthesis there, unless the shell is parsing things weirdly, or
the make program is doing something it shouldn't be doing.

---Tom
To: rt@krbdev.mit.edu
Subject: Re: [krbdev.mit.edu #2992] Kerberos 1.4 will not build gssapi_krb5.h on AIX 5.2
From: Sam Hartman <hartmans@mit.edu>
Date: Wed, 30 Mar 2005 16:16:54 -0500
RT-Send-Cc:

Hi. When including a patch, please explain why the patch is necessary
and what the patch accomplishes. Also, please don't send patches
against auto-generated files like Makefile; instead patch the
Makefile.in and confirm that the patch works across configure runs.

As far as I can tell, the original code is reasonable and works on
other systems. certainly avoiding continuation lines in makefiles
will be a significant problem for the Kerberos build system.
Subject: Re: [krbdev.mit.edu #2992] Kerberos 1.4 will not build gssapi_krb5.h on AIX 5.2
To: rt-comment@krbdev.mit.edu
From: James A Goodwin <jagoodwi@us.ibm.com>
Date: Thu, 31 Mar 2005 09:56:11 -0600
RT-Send-Cc:
Download (untitled) / with headers
text/plain 1.6KiB

Here are the results:

echo "Creating gssapi.h" ; h=gss$$; rm -f $h; (echo "/* This is the gssapi_krb5.h prologue. */"; echo "\" ; echo "/* End of gssapi_krb5.h prologue. */"; cat ./gssapi_krb5.hin )> $h && (set -x; mv -f $h gssapi_krb5.h) ; e=$?; rm -f $h; exit $e

The problem seems to be that an earlier line in the makefile reads:

include_stdint=\#include <stdint.h>

And the statement:

echo "$include_stdint"

is turning into:

echo "\"

For some reason, the # is being treated as the start of a comment even though the \ character precedes it. Unfortunately, my knowledge of make is limited, so I'll have to leave it to others to determine the source of the problem. If there is other information you need from me, I'll be glad to provide it.

Regards,

-James Goodwin
Software Engineer
IBM Business Consulting Services
jagoodwi@us.ibm.com
Phone: (281) 336 2578
Fax: (281) 335 4231
T/L 260-2578

"0000-Admin" <daemon@MIT.EDU> wrote on 03/30/2005 03:13:13 PM:

Show quoted text
> >>>>> "James" == James A Goodwin via RT <rt-comment@krbdev.mit.edu> writes:
>
> James> Initial make of Kerberos 1.4 fails with a Makefile syntax error:
>
> James> making all in lib/gssapi/krb5...
> James> /bin/sh: 0403-057 Syntax error at line 1 : `(' is not matched.
> James> make: 1254-004 The error code from the last command is 2.
>
> Could you please run "make -n gssapi_krb5.h" in that directory (after
> making sure that gssapi_krb5.h does not exist) using the original
> Makefile and send us the output?  There should not be an unbalanced
> left parenthesis there, unless the shell is parsing things weirdly, or
> the make program is doing something it shouldn't be doing.
>
> ---Tom
>

To: rt@krbdev.mit.edu
Subject: Re: [krbdev.mit.edu #2992] Kerberos 1.4 will not build gssapi_krb5.h on AIX 5.2
From: Tom Yu <tlyu@MIT.EDU>
Date: Thu, 31 Mar 2005 16:10:11 -0500
RT-Send-Cc:
Show quoted text
>>>>> "James" == James A Goodwin via RT <rt-comment@krbdev.mit.edu> writes:

Show quoted text
James> echo "Creating gssapi.h" ; h=gss$$; rm -f $h; (echo "/* This is the
James> gssapi_krb5.h prologue. */"; echo "\" ; echo "/* End of gssapi_krb5.h
James> prologue. */"; cat ./gssapi_krb5.hin )> $h && (set -x; mv -f $h
James> gssapi_krb5.h) ; e=$?; rm -f $h; exit $e

Show quoted text
James> The problem seems to be that an earlier line in the makefile reads:

Show quoted text
James> include_stdint=\#include <stdint.h>

Thanks. It looks like we have a quoting problem in that Makefile.

---Tom
From: tlyu@mit.edu
Subject: CVS Commit
Work around Makefile quoting problems.


To generate a diff of this commit:



cvs diff -r1.81 -r1.82 krb5/src/lib/gssapi/ChangeLog
cvs diff -r1.28 -r1.29 krb5/src/lib/gssapi/configure.in
cvs diff -r1.145 -r1.146 krb5/src/lib/gssapi/generic/ChangeLog
cvs diff -r1.75 -r1.76 krb5/src/lib/gssapi/generic/Makefile.in
cvs diff -r1.277 -r1.278 krb5/src/lib/gssapi/krb5/ChangeLog
cvs diff -r1.79 -r1.80 krb5/src/lib/gssapi/krb5/Makefile.in
From: tlyu@mit.edu
Subject: CVS Commit
pullup from trunk


To generate a diff of this commit:



cvs diff -r1.77.4.3 -r1.77.4.4 krb5/src/lib/gssapi/ChangeLog
cvs diff -r1.27.4.1 -r1.27.4.2 krb5/src/lib/gssapi/configure.in
cvs diff -r1.142.4.1 -r1.142.4.2
krb5/src/lib/gssapi/generic/ChangeLog
cvs diff -r1.72.4.1 -r1.72.4.2
krb5/src/lib/gssapi/generic/Makefile.in
cvs diff -r1.275.4.1 -r1.275.4.2 krb5/src/lib/gssapi/krb5/ChangeLog
cvs diff -r1.78 -r1.78.4.1 krb5/src/lib/gssapi/krb5/Makefile.in