bash configure - LINK : fatal error LNK1104: cannot open file ...fixpath.exe

jbvernee jbvernee at xs4all.nl
Tue Jun 12 12:40:24 UTC 2018


Hello guys,

I tried the rebaseall and it worked. Tbh, I hadn't really looked into 
cygwin that much since I wanted to avoid having PATH conflicts between 3 
different versions of tools (one windows, one msys, and one cygwin). I 
should have done that right away though since it was really easy to get 
working, and also runs 'configure' about 10x faster (although having to 
use the installer to install packages is somewhat annoying).

I think I'll just shelf msys2 for now, since it's not that important to 
me, and building openjdk is more of a hobby thing any ways. Btw, the 
patch that you linked, Magnus, is private, i.e. it returns a '403 - 
Forbidden'.

I have thought about using virtualbox to emulate linux to build in 
there, but it requires me to enable virtualization in my BIOS and doing 
that makes my machine boot up significantly slower. Fast startup is more 
important to me (like I said, building ojdk is more of a hobby thing). I 
also have a decade old PC that runs Ubuntu, but I'm sharing the monitor 
with someone else, so I can't always use it. That's why I've settled on 
getting the build to work natively.

Any ways, I ran configure and ended up with the following (I'm trying to 
build the amber repo btw):
```
====================================================
The existing configuration has been successfully updated in
/cygdrive/j/cygwin64/home/Jorn/cygwin-projects/amber/build/windows-x86_64-normal-server-release
using default settings.

Configuration summary:
* Debug level:    release
* HS debug level: product
* JVM variants:   server
* JVM features:   server: 'aot cds cmsgc compiler1 compiler2 g1gc graal 
jfr jni-check jvmci jvmti management nmt parallelgc serialgc services 
vm-structs'
* OpenJDK target: OS: windows, CPU architecture: x86, address length: 64
* Version string: 11-internal+0-adhoc.Jorn.amber (11-internal)

Tools summary:
* Environment:    cygwin version 2.10.0(0.325/5/3) (root at 
/cygdrive/j/cygwin64)
* Boot JDK:       java version "10.0.1" 2018-04-17  Java(TM) SE Runtime 
Environment 18.3 (build 10.0.1+10)  Java HotSpot(TM) 64-Bit Server VM 
18.3 (build 10.0.1+10, mixed mode)   (at 
/cygdrive/c/progra~1/java/jdk-10)
* Toolchain:      microsoft (Microsoft Visual Studio 2012)
* C Compiler:     Version 17.00.61030 (at 
/cygdrive/j/progra~2/micros~3.0/vc/bin/x86_am~1/cl)
* C++ Compiler:   Version 17.00.61030 (at 
/cygdrive/j/progra~2/micros~3.0/vc/bin/x86_am~1/cl)

Build performance summary:
* Cores to use:   7
* Memory limit:   8124 MB

WARNING: The result of this configuration has overridden an older
configuration. You *should* run 'make clean' to make sure you get a
proper build. Failure to do so might result in strange build problems.
```

I tried with VS 2015 community, but it was warning about not being 
supported? I guess that change hasn't propagated to the amber repo yet, 
so I'm using VS 2012 express. (I have also tried installing VS 2010 
express, which I believe is recommended, but it doesn't seem to include 
a compiler? There's a service pack which I think includes the compiler, 
but it requires windows SDK 7.1 which 'encountered some problems during 
installation' *sigh*).

Then running `make clean images` I had an error about inttypes.h 
missing, which I downloaded to fix that error, but now it's also 
complaining about other stuff like:
```
j:\cygwin64\home\Jorn\cygwin-projects\amber\test\fmw\gtest\include\gtest/gtest-printers.h(550) 
: error C2977: 'std::tuple' : too many template arguments
         j:\progra~2\micros~3.0\vc\include\utility(73) : see declaration 
of 'std::tuple'
```

And many more such errors after that. So I suppose VS 2012 express isn't 
supported either (even though it doesn't give a warning)? Maybe I'm 
missing something, I only installed VS 2012 express from here: 
https://www.visualstudio.com/vs/older-downloads/ . Or does the amber 
repo require some tricks to get working?

Close yet so far. Thanks,
Jorn Vernee

Thomas Stüfe schreef op 2018-06-12 11:49:
> I second the advice to get cygwin up and running. Cygwin is the
> canonical way to build on windows. Unless you have really pressing
> reasons to use something else, I would use what (almost) everyone else
> uses.
> 
> I have my windows build env up and running on a fresh windows machine
> usually in ~30 minutes. It should not be rocket science. I use both
> windows 7 and 10 for my work.
> 
> Some more points, in additions to what the others wrote:
> 
> - 64bit seems to be the standard: 64bit windows, building 64bit ojdk
> with a 64bit cygwin. Other configurations may work but are less well
> tested. Just something to keep in mind.
> 
> - If you do not trust your windows machine and suspect its software
> stack may be messed up somehow, there is always the option of
> installing a fresh copy of windows in a virtual machine, e.g.
> VirtualBox, and install the tool chain from scratch (cygwin + vistual
> studio).
> 
> Best Regards & good luck,
> 
> Thomas
> 
> 
> 
> 
> On Tue, Jun 12, 2018 at 8:53 AM, Magnus Ihse Bursie
> <magnus.ihse.bursie at oracle.com> wrote:
>> Hi Jorn,
>> 
>> As you probably have understood by now, porting OpenJDK to msys2 is 
>> not just
>> a simple quick fix. If all you want is to build OpenJDK on your 
>> Windows
>> computer, you are probably better off by trying to fix your Cygwin
>> installation. From your description, it sounds like you'll need to 
>> rebase
>> it: http://cygwin.wikia.com/wiki/Rebaseall.
>> 
>> If you want to pursue the msys2 path (and I'd appreciate it; it would 
>> be
>> good to get OpenJDK working on msys again), I suggest you start by 
>> looking
>> at the work that had been done before (but never merged into 
>> mainline). See
>> this conversation:
>> 
>> http://mail.openjdk.java.net/pipermail/build-dev/2017-October/019897.html
>> 
>> Peter Budai got the msys part working, but he had more ambitious goals 
>> of
>> getting gcc to build on Windows, which is magnitudes more work, so his 
>> patch
>> was never finished. Nevertheless, he published a patch in [1] which 
>> got
>> stripped by the mailing list. I've put it up here:
>> 
>> http://cr.openjdk.java.net/~ihse/msys2/jdk9-mingw.patch
>> 
>> It is for jdk9 so it's not possibly to apply out of the box, but you 
>> can
>> probably see what's been done and trying to reimplement it. I think 
>> the
>> "magic" part is setting MSYS2_ARG_CONV_EXCL= (the empty string), which
>> disables msys2 path mangling.
>> 
>> Good luck!
>> 
>> /Magnus
>> 
>> [1]
>> http://mail.openjdk.java.net/pipermail/build-dev/2017-October/019883.html
>> 



More information about the build-dev mailing list