Hi folks

I'm a brand new subscriper of this mailing list, so please forgive if I
violate some protocol or talk about things that had been discussed to death

I'm currently in the process of porting git ( for now) to the HP
NonStop platform and found several issues:

- HP NonStop is lacking poll(), git is making quite some use of it.
My Solution: I 'stole' the implementation from GNUlib, which implements
poll() using select().
Git should either provide its own poll(), not use it at all or resort to
using GNUlib, what do you think?.

- HP NonStop is lacking getrlimit(), fsync(), setitimer() and memory mapped
For now I've commented out the part that used getrlimit() and use a home
brewed implementation for fsync(), setitimer() and mmap().

- git makes use of some C99 features or at least feature that are not
availabe in C89, like 'inline'
C89 is the default compiler on HP NonStop, but we also habe a c99 compiler,
so telling configure to search for c99  should help here.

- libintl and libiconv sem to get linked in the wrong order, resulting in
unresolved symbols.
I've just moved the "ifndef NO_GETTEXT" section of Makefile to above the
"ifdef NEEDS_LIBICONF" section.

- HP NonStop doesn't have stat.st_blocks, this is used in
builtin/count-objects.c around line 45, not sure yet how to fix that.

- HP NonStop doesn't have stat.st_?time.nsec, there are several places what
an "#ifdef USE_NSEC" is missing, I can provide a diff if needed (offending
files: builtin/fetch-pack.c and read-cache.c). 

- HP NonStop doesn't know SA_RESTART
I fixed that with a "#define SA_RESTART 0" in the 3 files affected
(builtin/log.c, fast-import.c and progress.c)

- using C99 but not using #include <strings.h> results in compiler errors
due to a missing prototype for strcasecmp()
I fixed it by adding that to git-compat-util.h

- HP NonStop doesn't have intptr_t and uintpr_t (in its stdint.h)
I added them to git-compat-util.h

- HP NonStop doesn't need the " #define _XOPEN_SOURCE 600", just like
__APPLE__, __FreeBSD__ etc, so I added a "&& !defined(__TANDEM) in

- there seems to be an issue with compat/fnmatch/fnmatch.c not including
string.h, seems that HAVE_STRING_H is not #define'd anywhere.

- Once compiled and installed, a simple 
jojo@\hpitug:/home/jojo/GitHub $ git clone git://github.com/git/git.git
fails with:
/home/jojo/GitHub/git/.git/branches/: No such file or directory
After creating those manually it fails because the directory isn't empty,
After some trial'n'error I found that the culprit seems to be the
subdirectories branches, hook and info in
/usr/local/share/git-core/templates/, if I remove/rename those, the above
command works fine.
I have no idea why that is nor how to properly fix it, anyone out there?

Bye, Jojo

To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to