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

Re: [RFC/PATCH 1/2] Teach Solaris that _XOPEN_SOURCE=600 really menas XPG6

From
Brandon Casey <casey@nrlssc.navy.mil>
Date
Jun 11, 2009, 17:13 UTC
Message-ID
<UBftUjN2Jk2tj73et7i3WvuSUhtOiNjPVjmux6IKeXOo0Zs8KHgrOA@cipher.nrlssc.navy.mil>
In-Reply-To
<BDDDCC14-2EC0-4F34-AACE-0B0A3D8481B8@dbservice.com>
Tomas Carnecky wrote:
Show 28 quoted lines
> 
> On Jun 11, 2009, at 5:50 PM, Brandon Casey wrote:
>>
>> There are additionally patches on 'next' and more in the pipeline on 'pu'
>> which adjust these feature macros when compiling on Solaris.  See the
>> bc/solaris series 8fccb00 which was merged to 'pu'.
> 
> Alright, just wanted to make sure that issue is known.
> 
>> Also, if you happen to be using the Sun Studio suite 12 with c-compiler
>> version 5.9, I'd be interested to know whether you can compile
>> diff-delta.c,
>> or whether you get an error (see commit 203ee91f).
> 
> 
> I happen to have access to some of my university's solaris boxes with
> the following compiler: Sun C 5.9 SunOS_sparc Patch 124867-02
> 2007/11/27, I hope that is good enough.
> 
> $ gmake CC=/opt/SUNWspro/bin/c99 CFLAGS="" OPENSSLDIR=/usr/sfw V=1
> diff-delta.o
> GIT_VERSION = 1.6.3.2.354.g5787c
>     * new build flags or prefix
> /opt/SUNWspro/bin/c99 -o diff-delta.o -c   -D__EXTENSIONS__ -D__sun__
> -I/usr/sfw/include -DSHA1_HEADER='<openssl/sha.h>'  -DNO_STRCASESTR
> -DNO_MKDTEMP -DNO_MKSTEMPS -DNO_MEMMEM diff-delta.c
> $ echo $?
> 0

Ok, great. Looks like Sun fixed the flaw that was present in the 5.8 compiler, and no other changes need to be made to git. To be absolutely sure, and if you have a moment, can you try to compile the code snippet at the end of this email?

If you name the saved the code "test.c", then just compile with
   /opt/SUNWspro/bin/c99 -c test.c
The Sun C 5.8 compiler complains like this for me:
   "test.c", line 12: identifier redeclared: test_func
           current : function(pointer to const struct a_struct {int b, array[-1] of pointer to char c}) returning pointer to void
           previous: function(pointer to const struct a_struct {int b, array[-1] of pointer to char c}) returning pointer to void : "test.c", line 4
   c99: acomp failed for test.c

If the 5.9 compiler successfully compiles it, then this new version of Sun's compiler correctly handles c99 flex arrays.

> (btw, I have to clear CFLAGS when compiling with the sun compiler, as it
> doesn't understand -Wall)
Yes, that's correct.
-brandon

--->8--- test.c --->8--- struct a_struct;

extern void *test_func(const struct a_struct *f);
struct a_struct {
        int b;
        char* c[];
};
void *test_func(const struct a_struct *f)
{
        return 0;
}
Previous: Tomas CarneckyNext: Tomas Carnecky
Message 12 of 15 in “OpenSolaris 2008.11 portability fixes”
  1. 0/2 OpenSolaris 2008.11 portability fixesJunio C Hamano, May 23, 2009
  2. 1/2 Teach Solaris that _XOPEN_SOURCE=600 really menas XPG6Junio C Hamano, May 23, 2009
  3. 2/2 OpenSolaris 200811 (SunOS 5.11) does not want OLD_ICONVJunio C Hamano, May 23, 2009
  4. Brandon CaseyMay 28, 2009
  5. Jeff KingMay 28, 2009
  6. Brandon CaseyMay 28, 2009
  7. Jeff KingMay 28, 2009
  8. Junio C HamanoMay 28, 2009
  9. Tomas CarneckyJun 11, 2009
  10. Brandon CaseyJun 11, 2009
  11. Tomas CarneckyJun 11, 2009
  12. Brandon CaseyJun 11, 2009
  13. Tomas CarneckyJun 11, 2009
  14. Brandon CaseyJun 11, 2009
  15. Junio C HamanoJun 11, 2009

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.