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

Re: Git on Mac OS X 10.4.10

From
Torsten Bögershausen <tboegi@web.de>
Date
Aug 14, 2014, 14:39 UTC
Message-ID
<53ECCA14.40900@web.de>
In-Reply-To
<53ECA7DB.7060407@jump-ing.de>
On 08/14/2014 02:13 PM, Markus Hitter wrote:
Show 25 quoted lines
> I'm new to this list, so: Hello everybody!
>
> My backup servers run Mac OS X 10.4.10. Yes, these are old, but very
> reliable and easily up to the task. And Mac OS X 10.4 is the latest OS
> supported there (PowerPC G3).
>
> Recently I tried to upgrade to v2.0.4 (from 1.7.11.4).
>
> Issue 1: I get many of these warnings:
>
>      LINK [many cases]
> /usr/bin/ld: warning multiple definitions of symbol _regcomp
> libgit.a(regex.o) definition of _regcomp in section (__TEXT,__text)
> /usr/lib/gcc/powerpc-apple-darwin8/4.0.1/../../../libSystem.dylib(regcomp.So)
> definition of _regcomp
> /usr/bin/ld: warning multiple definitions of symbol _regexec
> libgit.a(regex.o) definition of _regexec in section (__TEXT,__text)
> /usr/lib/gcc/powerpc-apple-darwin8/4.0.1/../../../libSystem.dylib(regexec.So)
> definition of _regexec
> /usr/bin/ld: warning multiple definitions of symbol _regfree
> libgit.a(regex.o) definition of _regfree in section (__TEXT,__text)
> /usr/lib/gcc/powerpc-apple-darwin8/4.0.1/../../../libSystem.dylib(regfree.So)
> definition of _regfree
>
> Is this expected?

No. Git has its own regcomp() (and the regXXX() ) in ./compat/regex/*, and for some reasons the linker picks them both from libgit.a (which is a static library) and the dynamic library in libSystem.dylib

Either the linker needs to be convinced not to do that (by changing the command line to the linker, changing the order of libraries may help, I don't know) Or each regcomp in the .h and .c files is changed into git_regcomp. This change shouldn't break anything.

Show 15 quoted lines
>
>
> Issue 2: I need this simple patch ...
>
> --- compat/apple-common-crypto.h.org	2014-07-30 23:19:53.000000000 +0200
> +++ compat/apple-common-crypto.h	2014-08-14 12:57:37.000000000 +0200
> @@ -2,7 +2,7 @@
>   #define OPENSSL_NO_MD5
>   #define HEADER_HMAC_H
>   #define HEADER_SHA_H
> -#include <CommonCrypto/CommonHMAC.h>
> +//#include <CommonCrypto/CommonHMAC.h>
>   #define HMAC_CTX CCHmacContext
>   #define HMAC_Init(hmac, key, len, algo) CCHmacInit(hmac, algo, key, len)
>   #define HMAC_Update CCHmacUpdate

The <CommonCrypto/CommonHMAC.h> is in Mac OS X 10.6 .. 10.9, but not in 10.4 (I don't know about 10.5). You can try to tweak the "makefiles", search for NO_APPLE_COMMON_CRYPTO, and set NO_APPLE_COMMON_CRYPTO, but only for Darwin 10.3 (or below)

Show 14 quoted lines
> ... and this command sequence ...
>
> make all
> touch imap-send.o
> touch git-imap-send
> make all
>
> ... to get it compiling. All, except git-imap-send, obviously, which is
> no loss for my purposes.
>
> I tried many releases, the patch requirement started with about v1.9.1,
> the git-imap-send failure somewhere between 1.8.1.6 and 1.8.4.3.
>
> Trying to be a good Open Source citizen, how would I proceed?
If you want to share your changes, please send a patch to this list.
> Thanks,
> Markus
Previous: Markus HitterNext: Markus Hitter
Message 2 of 14 in “Git on Mac OS X 10.4.10”
  1. Markus HitterAug 14, 2014
  2. Torsten BögershausenAug 14, 2014
  3. Markus HitterAug 14, 2014
  4. Jonathan NiederAug 14, 2014
  5. Markus HitterAug 15, 2014
  6. Junio C HamanoAug 14, 2014
  7. Kyle J. McKayAug 15, 2014
  8. Eric SunshineAug 15, 2014
  9. Markus HitterAug 15, 2014
  10. Junio C HamanoAug 15, 2014
  11. Junio C HamanoAug 15, 2014
  12. Kyle J. McKayAug 15, 2014
  13. Junio C HamanoAug 15, 2014
  14. Kyle J. McKayAug 15, 2014

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.