This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: gcc-2.95.3-5 on cygwin compilation problem


Just remove all occurrences of strerror.[oc] from the Makefile.

cgf

On Sat, Nov 17, 2001 at 09:41:48PM +0000, Guy Harrison wrote:
>On Thu, 15 Nov 2001 12:15:36 -0700, "Joe Graham" <joe@aiobjects.com>
>wrote:
>
>FWIW here's my stab at it...
>
>There should be only one sys_errlist.
>
>>Hello
>>I ran into the following 2 problems when trying to build gcc-2.95.3-5 on
>>cygwin and gcc-3.0.  Both gave me the same problems in the same file.  Below
>>is how i got it to compile but I sure my implementation is probably wrong.
>>Here goes.
>>********
>>error 1:
>>********
>>in file:
>><gcc_source_directory>/libiberty/strerror.c
>>../../gcc-2.95.3-5/libiberty/strerror.c:464: conflicting types for
>>`sys_errlist
>>/usr/include/sys/errno.h:23: previous declaration of `sys_errlist'
>>make[1]: *** [strerror.o] Error 1
>
>extern __IMPORT const char * const sys_errlist[];
>
>Just about as 'const' as you can get.
>
>>original:
>>static const char **sys_errlist;
>>fix:
>>//static const char **sys_errlist;
>>(commenting out the declaration fixes this)
>
>Declaration here allows you to declare a "creatable" sys_errlist. The
>system one above is effectively saying there already is one.
>
>>********
>>error 2:
>>********
>>in file:
>><gcc_source_directory>/libiberty/strerror.c
>>../../gcc-2.95.3-5/libiberty/strerror.c
>>../../gcc-2.95.3-5/libiberty/strerror.c: In function `init_error_tables':
>>../../gcc-2.95.3-5/libiberty/strerror.c:546: `sys_errlist' has an incomplete
>>typ
>>e
>>original:
>>     if ((sys_errlist = (const char **) malloc (nbytes)) != NULL)
>>fix:
>>     if ((sys_errlist[eip->value] = (const char **) malloc (nbytes)) !=
>>NULL)
>>(does this need to be eip->name ?)
>
>I suspect there's nothing wrong and your fix is horribly broken.
>
>>here's the diff
>>464c464
>>< //static const char **sys_errlist;
>>---
>>> static const char **sys_errlist;
>>546c546
>><       if ((sys_errlist[eip->value] = (const char **) malloc (nbytes)) !=
>>NULL)
>>
>>---
>>>       if ((sys_errlist = (const char **) malloc (nbytes)) != NULL)
>
>I've not compiled gcc but methinks there's two effective choices.
>
>1) Compile against already existing 'sys_errlist'.
>2) gcc creates its own 'sys_errlist'.
>
>This is only a guess: you want option (1). Option (2) probably exists
>for "bootstrapping" gcc.
>
>I took a look at strerror.c and the problem code is conditional on
>HAVE_SYSERRLIST - that must be undefined, at least at that point,
>otherwise the problem would not have arisen. You need to discover why
>(config.h - configure).
>
>
>-- 
>swamp-dog@ntlworld.com
>
>--
>Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
>Bug reporting:         http://cygwin.com/bugs.html
>Documentation:         http://cygwin.com/docs.html
>FAQ:                   http://cygwin.com/faq/

-- 
cgf@redhat.com                        Red Hat, Inc.
http://sources.redhat.com/            http://www.redhat.com/

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]