git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] Fix "identifier redeclared" compilation error with SUN cc.

From
Björn Steinbrink <b.steinbrink@gmx.de>
Date
Nov 15, 2007, 01:15 UTC
Message-ID
<1195089303-28085-1-git-send-email-B.Steinbrink@gmx.de>
In-Reply-To
<7vy7d08her.fsf@gitster.siamese.dyndns.org>

Some versions of SUN's cc have a bug that causes them to complain about a redeclared identifier when you use a function declaration that takes a struct with a FAM and this struct has only been declared but not yet defined.

IOW, this will fail:
	struct foo;
	void bar(struct foo *);
	struct foo {
		int v;
		long *a[];
	};
	void bar(struct foo *foo) {} // SUN cc bug strikes here

So when we detect a SUN cc, we use an array size of 1 to workaround that bug.

Signed-off-by: Björn Steinbrink <B.Steinbrink@gmx.de>
---
Guido, could you please test this patch?

I have no clue which versions of SUN's cc are affected, so I simply enabled the workaround for all versions. Someone with more knowledge about that should probably limit the check to only do that for the broken versions.

 git-compat-util.h |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/git-compat-util.h b/git-compat-util.h
index ede9408..c3ff4b4 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -6,6 +6,8 @@
 #ifndef FLEX_ARRAY
 #if defined(__GNUC__) && (__GNUC__ < 3)
 #define FLEX_ARRAY 0
+#elif defined(sun) || defined(__SUN__)
+#define FLEX_ARRAY 1
 #else
 #define FLEX_ARRAY /* empty */
 #endif
-- 
1.5.3.5.643.g40e25
Previous: Björn SteinbrinkNext: Guido Ostkamp
Message 11 of 31 in “Fix Solaris Workshop Compiler issues”
  1. Fix Solaris Workshop Compiler issuesGuido Ostkamp, Nov 14, 2007
  2. Alex RiesenNov 14, 2007
  3. Junio C HamanoNov 14, 2007
  4. Guido OstkampNov 14, 2007
  5. Alex RiesenNov 14, 2007
  6. Björn SteinbrinkNov 15, 2007
  7. Junio C HamanoNov 15, 2007
  8. Björn SteinbrinkNov 15, 2007
  9. Junio C HamanoNov 15, 2007
  10. Björn SteinbrinkNov 15, 2007
  11. Fix "identifier redeclared" compilation error with SUN cc.Björn Steinbrink, Nov 15, 2007
  12. Guido OstkampNov 15, 2007
  13. Junio C HamanoNov 15, 2007
  14. Guido OstkampNov 15, 2007
  15. Add mkdtemp() workaround for Sun Solaris 10Guido Ostkamp, Nov 16, 2007
  16. [RFH] Solaris portabilityJunio C Hamano, Nov 17, 2007
  17. Guido OstkampNov 18, 2007
  18. Junio C HamanoNov 18, 2007
  19. Junio C HamanoNov 16, 2007
  20. Björn SteinbrinkNov 16, 2007
  21. Fix "identifier redeclared" compilation error with SUN ccGuido Ostkamp, Nov 19, 2007
  22. Junio C HamanoNov 20, 2007
  23. Guido OstkampNov 20, 2007
  24. Guido OstkampNov 20, 2007
  25. Martin MaresNov 20, 2007
  26. Junio C HamanoNov 20, 2007
  27. Martin MaresNov 20, 2007
  28. Linus TorvaldsNov 15, 2007
  29. David KastrupNov 15, 2007
  30. Linus TorvaldsNov 15, 2007
  31. Junio C HamanoNov 15, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.