Bug 105679 - makedepend not compatible with /usr/lib/assert.h
Summary: makedepend not compatible with /usr/lib/assert.h
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Linux
Classification: Retired
Component: XFree86
Version: 8.0
Hardware: i386
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Jakub Jelinek
QA Contact: David Lawrence
URL: http://lists.debian.org/debian-x/2002...
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2003-09-26 14:50 UTC by Dale R. Worley
Modified: 2007-04-18 16:57 UTC (History)
0 users

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2003-09-29 07:43:59 UTC
Embargoed:


Attachments (Terms of Use)
Shell output from attempting to execute ./configure (8.84 KB, text/plain)
2003-09-26 14:52 UTC, Dale R. Worley
no flags Details

Description Dale R. Worley 2003-09-26 14:50:50 UTC
Description of problem:

When attempting to compile the 'fetchmail' program from its sources, I received
an error message.  Searching on the web suggested that there is an
incompatibility between makedepend and assert.h.  The web page gave a suggested
patch to assert.h that seems to eliminate the problem.

(This problem is also discussed in a Debian bug report: 
http://lists.debian.org/debian-x/2002/debian-x-200212/msg00016.html)

Version-Release number of selected component (if applicable):

/usr/include/assert.h from glibc-devel-2.3.2-4.80.6 in RedHat Linux 8.0, as updated.

/usr/X11R6/bin/makedepend from XFree86-devel-4.2.1-21 in RedHat Linux 8.0, as
updated.

fetchmail-6.2.4 from http://catb.org/~esr/fetchmail and
http://catb.org/~esr/fetchmail/fetchmail-6.2.4.tar.gz.

How reproducible:

Reliably.

Steps to Reproduce:

1. Download fetchmail-6.2.4.tar.gz and un-tar it.  It will construct a directory
named fetchmail-6.2.4.  cd into this directory.

2. Per the instructions in the file INSTALL and run "./configure".

3. The following output is produced:

    [247 lines of apparently correct auto-configure output deleted here -- see
attachment]
    You can ignore any makedepend error messages:
    "/usr/include/assert.h":104:  defined __cplusplus ? __GNUC_PREREQ (2, 6) :
__GNUC_PREREQ (2, 4)
								      ^--- expecting :


The final message "expecting :" is an error and causes makedepend to halt, which
halts ./configure.
    
Actual results:

Error message as detailed immediately above.

Expected results:

Execution of makedepend and ./configure should finish.

Additional info:

See the above URL for a filing of this issue in the Debian bug system.  That
filing also includes a suggested fix, to edit assert.h to change the definition
of a particular macro:

    I usually deal with this by patching /usr/include/assert.h with the
    following patch, which is equivalent to the functionality that
    makedepend can't grok:

    --- assert.h.orig	Fri Oct 13 11:04:54 2000
    +++ assert.h	Fri Oct 13 11:02:28 2000
    @@ -94,7 +94,11 @@
	This is broken in G++ before version 2.6.
	C9x has a similar variable called __func__, but prefer the GCC one since
	it demangles C++ function names.  */
    -# if defined __cplusplus ? __GNUC_PREREQ (2, 6) : __GNUC_PREREQ (2, 4)
    +# if defined __cplusplus
    +#  if __GNUC_PREREQ (2, 6)
    +#   define __ASSERT_FUNCTION	__PRETTY_FUNCTION__
    +#  endif
    +# elif __GNUC_PREREQ (2, 4)
     #   define __ASSERT_FUNCTION	__PRETTY_FUNCTION__
     # else
     #  if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L

Applying this patch to my system appears to eliminate the problem.

Comment 1 Dale R. Worley 2003-09-26 14:52:55 UTC
Created attachment 94759 [details]
Shell output from attempting to execute ./configure

Comment 2 Jakub Jelinek 2003-09-29 07:43:59 UTC
Cannot reproduce that with XFree86 4.3.0 makedepend.

Comment 3 Dale R. Worley 2003-10-04 01:54:08 UTC
It would be easier on the users to say that the problem is resolved in RHL 9,
since RH is not providing an XFree86-4.3.0 update for RHL 8.0.


Note You need to log in before you can comment on or make changes to this bug.