Thread (6 messages) flat view 6 messages, 2 authors, 2016-06-15

Re: [PATCH 2/2] Include unistd.h.

From: Markus Duft <hidden>
Date: 2016-06-15 22:51:20

(still not getting mail from the list, so copied from the archive...).
Markus Duft <mduft <at> gentoo.org> writes:
[snip]
quoted
Yes. suacomp installs itself as libc.{a,so}. Of course the path to the
suacomp prefix needs to be told to the compiler. Without it, interix (at
least the newer versions) are near unusable,...
You are much more familiar with Interix than I am, and if you were the
only person who uses Interix with git, I would buy that argument
unconditionally.

How has one built and used git before suacomp days? Are these users
extinct? Are there users who do not still use suacomp and for whatever
reason do not want to use it, but still want to use git?
I did start the git porting when i ported Gentoo Prefix [1] to interix. I only ever tried to build it in there, and i actually don't think that there is any other build-case for interix (ATM). Maybe someday someone has the great idea of building/using git without Gentoo Prefix (good luck .. :)), but currently this is (AFAICT) not the case. In Gentoo Prefix in turn, suacomp is always there, on interix, and all versions are supported right now (interix 3.5 was not, but i did the work). Also, the compiler and linker are set up accordingly there.

so, in order:
 1) yes, i did in gentoo prefix, which now uses suacomp
 2) yes, with the appearence of suacomp in gentoo prefix
 3) if a user of gentoo prefix does not yet have suacomp,
    he/she will get upgraded automatically. i do not know
    of other users, and believe they don't exist.
What I am getting at is that I have to come up with a description in the
release notes, and I cannot decide what the entry for this change should
say, and if I can stand behind that statement.

Here is one version, based on my reading of what you said so far:

 * The build procedure for Interix now requires use of suacomp. Older
   versions of Interix that are incompatible with suacomp are no longer
   supported. The Makefile does not automatically tell "the path to the
   suacomp prefix" to the compiler, so you would need to do that yourself.
The part with incompatible is no longer true. i tried building git on all interix versions, and it works fine. I feel, that if a user really installs plain interix, wan't git and isntalls suacomp himself, he/she will be power-user enough to manage and tell the build about some include/lib paths.
Doesn't sound pretty, and I hesitate to stand behind such a statement.
Abandoning obsoleted versions of obscure platform nobody cares about is
fine, but at least we should make it clear who are being abandoned by
saying which version. Also "needs to be told to the compiler" part needs
some end-user explanation in Makefile ("set HAVE_SUACOMP=/usr/lib/suacomp
when building on/for Interix", or something).
Hm. suacomp is designed to be completely transparent to (nearly) everything involved in building a package. It should be part of the suacomp setup process to get it into the compiler/linker (by, for example, creating shell script wrappers around compiler/linker, much like colorgcc et. al.). If at all, i'd only set a HAVE_SUACOMP=YesPlease, and based on that, default some symbols to different values (exactly those that the 1/2 patch modifies).
Here is another possible version (you would need to update your patch to
support both):

 * On Interix, it is preferrable to use suacomp to build git, but the old
   way is still supported. Give HAVE_SUACOMP=/path/to/suacomp to Make (or
   override it in your config.mak) when building git.
The "old way" was only supported on interix 6.0, as i found out. both interix 5.2 and 3.5 needed at least some additional workarounds, which are now gone with suacomp. I don't think that it would be worth the work (although i'd happily do it, if you want), to support an "old way" which has not a single advantage, and doesn't event work everywhere.
That is more easily justifiable, but I cannot tell from this exchange with
you how important to keep supporting the old way is (or if it is even
possible).
It is possible, but as i said, i don't think it is worth it.

However we proceed: thanks for contemplating about such an exotic platform. i really appreciate it!
Markus
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help