git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Thomas Glanzmann <thomas@glanzmann.de>
To: Junio C Hamano <gitster@pobox.com>, GIT <git@vger.kernel.org>
Cc: Jason Riedy <ejr@EECS.Berkeley.EDU>, Paul Jakma <paul@clubi.ie>
Subject: If NEEDS_LIBICONV is set for Solaris 8, it does not build git for me
Date: Sun, 22 Jul 2007 12:40:45 +0200	[thread overview]
Message-ID: <20070722104045.GF4760@cip.informatik.uni-erlangen.de> (raw)

Hello Junio,

     [ Paul and Jason CCed because they touched that section last ]

Patch is appended at the very bottom of the E-Mail. I have a fully
patched Solaris 8 with Forte 11. In order to get git compile I had to
delete the

	NEEDS_LIBICONV = YesPlease

line from the Makefile in the Solaris 8 section. After my patch the
section in the Makefile looks like that:

        ifeq ($(uname_R),5.8)
                NO_UNSETENV = YesPlease
                NO_SETENV = YesPlease
                NO_C99_FORMAT = YesPlease
                NO_STRTOUMAX = YesPlease
        endif
        ifeq ($(uname_R),5.9)
                NO_UNSETENV = YesPlease
                NO_SETENV = YesPlease
                NO_C99_FORMAT = YesPlease
                NO_STRTOUMAX = YesPlease
        endif

As you can see _after_ my patch the secion for 5.8 and 5.9 is the same.
So I wonder if it is possible to merge this two sections. But I have no
idea how to do that in the makefile language. I tried to remove other
flags for 5.8, too but it always resulted in built break so all other
flags are necessary.

----8<---- cut here ----8<---- cut here ----8<---- cut here ----8<----

The following issue as _absolutly_ nothing todo with the above and is
here only for completeness. In order to get git to compile with Forte 11
you have to work around a compiler bug in Forte 11. Forte 11 chokes
sometimes when function arguments are declared as static (I raised this
topic before even on this list). I guess that I will also file a bug
against forte 11 tomorrow. The symptom is:

    CC diff-delta.o
"diff-delta.c", line 248: identifier redeclared: create_delta
        current : function(pointer to const struct delta_index {pointer to const void src_buf, unsigned long src_size, unsigned int hash_mask, array[-1] of pointer to struct index_entry {..} hash}, pointer to const void, unsigned long, pointer to unsigned long, unsigned long) returning pointer to void
        previous: function(pointer to const struct delta_index {pointer to const void src_buf, unsigned long src_size, unsigned int hash_mask, array[-1] of pointer to struct index_entry {..} hash}, pointer to const void, unsigned long, pointer to unsigned long, unsigned long) returning pointer to void : "delta.h", line 37
cc: acomp failed for diff-delta.c
gmake[1]: *** [diff-delta.o] Error 2

As you can see Forte 11 is complaining that the protype is different to
the function. But it is not they absolut identical. And here is the
workaround which should _not_ be commited because it is just wrong. It
removes the const flags from the function arguments which results in lot
of warnings but does compile git with Forte 11.

--- a/diff-delta.c
+++ b/diff-delta.c
@@ -242,8 +242,8 @@
 #define MAX_OP_SIZE	(5 + 5 + 1 + RABIN_WINDOW + 7)
 
 void *
-create_delta(const struct delta_index *index,
-	     const void *trg_buf, unsigned long trg_size,
+create_delta(struct delta_index *index,
+	     void *trg_buf, unsigned long trg_size,
 	     unsigned long *delta_size, unsigned long max_size)
 {
 	unsigned int i, outpos, outsize, val;
--- a/delta.h
+++ b/delta.h
@@ -34,8 +34,8 @@
  * must be freed by the caller.
  */
 extern void *
-create_delta(const struct delta_index *index,
-	     const void *buf, unsigned long bufsize,
+create_delta(struct delta_index *index,
+	     void *buf, unsigned long bufsize,
 	     unsigned long *delta_size, unsigned long max_delta_size);
 
 /*

----8<---- cut here ----8<---- cut here ----8<---- cut here ----8<----

	Thomas

>From 14a4e0245c32c73a8a2dbd1763a23b8b69f8844d Mon Sep 17 00:00:00 2001
From: Thomas Glanzmann <sithglan@stud.uni-erlangen.de>
Date: Sun, 22 Jul 2007 12:14:14 +0200
Subject: [PATCH] Don't set NEEDS_LIBICONV for Solaris 8

I use a fully patched Solaris 8 with SUNs Forte 11 Compiler which is also fully
patched. If NEEDS_LIBICONV is set to YesPlease the compile fails for me with:

    AR xdiff/lib.a
    LINK git-convert-objects
ld: fatal: library -liconv: not found
ld: fatal: File processing errors. No output written to git-convert-objects
gmake[1]: *** [git-convert-objects] Error 1

Without the NEEDS_LIBICONV set it simply builds.
---
 Makefile |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/Makefile b/Makefile
index 73b487f..1c294ca 100644
--- a/Makefile
+++ b/Makefile
@@ -401,7 +401,6 @@ ifeq ($(uname_S),SunOS)
 	NO_STRCASESTR = YesPlease
 	NO_HSTRERROR = YesPlease
 	ifeq ($(uname_R),5.8)
-		NEEDS_LIBICONV = YesPlease
 		NO_UNSETENV = YesPlease
 		NO_SETENV = YesPlease
 		NO_C99_FORMAT = YesPlease
-- 
1.5.2.3

             reply	other threads:[~2007-07-22 10:40 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-07-22 10:40 Thomas Glanzmann [this message]
2007-07-22 22:59 ` If NEEDS_LIBICONV is set for Solaris 8, it does not build git for me Junio C Hamano
2007-07-23 18:35   ` Jason Riedy
2007-07-23 18:51     ` Thomas Glanzmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070722104045.GF4760@cip.informatik.uni-erlangen.de \
    --to=thomas@glanzmann.de \
    --cc=ejr@EECS.Berkeley.EDU \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=paul@clubi.ie \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).