Thread (23 messages) flat view 23 messages, 7 authors, 2016-06-15

Re: What's cooking in git.git (Nov 2010, #03; Wed, 24)

From: Erik Faye-Lund <hidden>
Date: 2016-06-15 22:50:06

On Thu, Nov 25, 2010 at 5:33 PM, Ævar Arnfjörð Bjarmason
[off-list ref] wrote:
On Thu, Nov 25, 2010 at 16:03, Erik Faye-Lund [off-list ref] wrote:
quoted
I'm really not thinking straight today: This was in the MSVC-section,
and I tried to build with MinGW. If I move it to the MinGW section,
then it's closer to working:

$ make
   CC alias.o
   CC alloc.o
<...>
   CC gettext.o
gettext.c:3:21: error: libintl.h: No such file or directory
gettext.c:7:22: error: langinfo.h: No such file or directory
gettext.c: In function 'git_setup_gettext':
gettext.c:17: warning: implicit declaration of function 'bindtextdomain'
gettext.c:25: error: 'LC_MESSAGES' undeclared (first use in this function)
gettext.c:25: error: (Each undeclared identifier is reported only once
gettext.c:25: error: for each function it appears in.)
gettext.c:30: warning: implicit declaration of function 'nl_langinfo'
gettext.c:30: error: 'CODESET' undeclared (first use in this function)
gettext.c:30: warning: assignment makes pointer from integer without a cast
gettext.c:32: warning: implicit declaration of function 'bind_textdomain_codeset
'
gettext.c:34: warning: implicit declaration of function 'textdomain'
make: *** [gettext.o] Error 1

So this seems to be the same issue as what Hannes is talking about;
gettext.o being included into LIB_OBJS before we know if it should or
not.

Moving it down to the rest of the NO_GETTEXT-magic fixes the problem for me:

diff --git a/Makefile b/Makefile
index 8357106..a858708 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,5 @@
 # The default target of this Makefile is...
 all::
-
 # Define V=1 to have a more verbose compile.
 #
 # Define SHELL_PATH to a POSIX shell if your /bin/sh is broken.
@@ -628,9 +627,6 @@ LIB_OBJS += entry.o
 LIB_OBJS += environment.o
 LIB_OBJS += exec_cmd.o
 LIB_OBJS += fsck.o
-ifndef NO_GETTEXT
-LIB_OBJS += gettext.o
-endif
 LIB_OBJS += graph.o
 LIB_OBJS += grep.o
 LIB_OBJS += hash.o
@@ -1603,6 +1600,8 @@ endif
 ifdef NO_GETTEXT
       COMPAT_CFLAGS += -DNO_GETTEXT
+else
+       LIB_OBJS += gettext.o
 endif

 ifdef NEEDS_LIBINTL
Doesn't it also work for you to just add:

   NO_GETTEXT = YesPlease
   NEEDS_LIBINTL =

To the MinGW specific section in the Makefile? That's why I did the
"Makefile: move "Platform specific tweaks" above LIB_{H,OBJS}"
patch. I just hadn't submitted another patch to disable it on MinGW. I
think I asked someone to look into that (e.g. I know that you're
working on MinGW + gettext, so maybe we don't want to disable it
anymore). But I can't find that posting now, and maybe I didn't send it.

Anyway, if that works it's a cleaner way to disable it.
Yes, that works. But that is a work-around, not a solution. I already
told the make system not to translate git, why should I have to
anything else? In fact, I did exactly what the documentation at the
top of the makefile told me to do. It says to set NO_GETTEXT, nothing
about clearing NEEDS_LIBINTL.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help