On Sun, Aug 28, 2011 at 10:08:46PM +0200, Fredrik Kuivinen wrote: > On Sat, Aug 27, 2011 at 03:14:43AM -0700, David Aguilar wrote: > > On Sat, Aug 27, 2011 at 02:21:40AM -0400, Brian Gernhardt wrote: > > > Some of the errors look like things I could track down, but some just confuse me. If anyone else could take a look into this, it would be much appreciated. > > > > > > ~~ Brian G. > > > > > > gcc -o compat/obstack.o -c -MF compat/.depend/obstack.o.d -MMD -MP -Wall -Wdeclaration-after-statement -Werror -Wno-deprecated-declarations -I. -DUSE_ST_TIMESPEC -DSHA1_HEADER='"block-sha1/sha1.h"' -DNO_MEMMEM compat/obstack.c > > > In file included from compat/obstack.c:30: > > > compat/obstack.h:190: error: __block attribute can be specified on variables only > > > compat/obstack.c:70: error: expected specifier-qualifier-list before ‘uintmax_t’ > > > compat/obstack.c:111:24: error: exitfail.h: No such file or directory > > > cc1: warnings being treated as errors > > > compat/obstack.c: In function ‘print_and_abort’: > > > compat/obstack.c:436: warning: implicit declaration of function ‘gettext’ > > > compat/obstack.c:436: warning: incompatible implicit declaration of built-in function ‘gettext’ > > > compat/obstack.c:438: error: ‘exit_failure’ undeclared (first use in this function) > > > compat/obstack.c:438: error: (Each undeclared identifier is reported only once > > > compat/obstack.c:438: error: for each function it appears in.) > > > compat/obstack.c:439: warning: ‘noreturn’ function does return > > > make: *** [compat/obstack.o] Error 1 > > > > > > $ gcc --version > > > i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00) > > > > I ran into the same thing. > > > > This fixes it for me, but we might want to rearrange the > > #includes a bit. I think this needs more work.. including > > compat/obstack.h from kwset.c seems wrong. > > Should we just include obstack.h in git-compat-util instead? > > > > I suspect that more exotic platforms may have problems > > with obstack.h as well. This probably needs some testing > > on SunOS, AIX, IRIX, etc. > > > How about doing something a bit simpler instead and changing obstack.c > to not make use of exit.h and exitfail.h? Then we don't have to update > Makefile for all platforms needing NEEDS_OBSTACK and NEEDS_EXITFAIL. I like this much better. Less code is better code. > I don't understand why the ELIDE_CODE check is not sufficient. Care to > explain? I can't say I know. The intention of the check is to avoid pulling in that section of code when it is already built-in to the C library. Maybe that check doesn't quite mean the same thing when the file is used alone outside of its original context? > -void obstack_free (struct obstack *__obstack, void *__block); > +void obstack_free (struct obstack *obstack, void *block); Tiny nit: I know it's just a declaration but would it be advisable to drop the variable names altogether here? Having a pointer and a structure with the same "obstack" name could be confusing. This looks good otherwise. I was a bit iffy about my patch when I had to bring in the extra headers. Doing without them is much better. I tried your patch on top of my recent "Improve compiler header dependency check" and it worked fine. So... Tested-by: David Aguilar <davvid@xxxxxxxxx> -- David -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html