Re: cross compiling and autoconf's host vs build (vs target)
Andrew Cagney <[email protected]> Wed, 2 Dec 2015 15:51:08 -0500
| Newsgroups | gmane.comp.mozilla.devel.nspr |
|---|---|
| Message-ID | <CAJeAr6vo9mJ-4g1GYn9x5OwrWn4MsEPxrdxPhuM206TnjXcWGw@mail.gmail.com> |
Sorry, yes I forgot US thanksgiving. I've been trying to check if my posts got through by looking at: https://groups.google.com/forum/#!forum/mozilla.dev.tech.nspr but it seems to only show half of them. Now that I know that they are getting out, I'll just ignore the list. Anyway, like you suggest, I'll submit a PR. Andrew On 2 December 2015 at 12:19, Wan-Teh Chang <[email protected]> wrote: > Hi Andrew, > > I saw both this post and a follow-up post of yours regarding the same > topic. The reason for the late reply is that last Thursday and Friday > were Thanksgiving holidays in the US. > > On Thu, Nov 26, 2015 at 10:49 AM, Andrew Cagney <[email protected]> wrote: >> The autoconf 2.13 to 2.50 transition, er, "cleaned up" cross >> compilation and, in the process, "clarified" the meaning of "host", >> "build" and "target". >> >> For instance, I can specify: >> >> ./configure --host=m68k-uclinux-linux --build=i686-pc-linux-gnu >> --target=m68k-uclinux-linux ... >> >> to cross compile npsr (--host and host!=build trigger the cross compile): >> >> checking build system type... i686-pc-linux-gnu >> checking host system type... m68k-uclinux-linux-gnu >> checking target system type... m68k-uclinux-linux-gnu >> >> However, for nspr, this didn't work. Looking at configure.in, it >> seems to still have traces of the old 2.13 conventions (mixing "$host" >> and "$build"). For instance: >> >> -if test "$target" != "$host"; then >> - echo "cross compiling from $host to $target" >> +if test "$target" != "$build"; then >> + echo "cross compiling from $build to $target" >> >> which is changed by the below patch. >> >> However, tread carefully, I find the way this all hangs together >> quickly gets messy and confusing (details are in "Hosts and >> Cross-Compilation" section in autoconf's documentation). > > Thank you for the patch. It is a known problem that NSPR's > configure.in script doesn't follow the current autoconf convention for > cross compilation. I noticed this when I ported configure.in from > autoconf 2.13 to 2.69. There are two reasons I decided to not change > it. > > 1) As you may have noticed, there is some code in configure.in that > seems to detect cross compilation using "nonstandard" or enhanced > checks -- the code that sets the |cross_compiling| and |CROSS_COMPILE| > variables. I don't understand that code, so I avoided changing it. > > 2) Mozilla's top-level configure.in script follows the same > convention. Although NSPR is a stand-alone library, it is often > associated with Mozilla, so I thought it would be good to be > consistent. (Mozilla's configure.in can invoke a sub-configure that > follows a different convention, so NSPR doesn't need to be > consistent.) > > I am not familiar with cross compilation. The best people to talk to > about this issue would be Mozilla's build system experts, such as Mike > Hommey and Ted Mielczarek. I don't know if they read this newsgroup > regularly. I suggest you file a bug report and attach your patch to > it: https://bugzilla.mozilla.org/enter_bug.cgi?product=NSPR > > Thanks, > Wan-Teh