PR# 18190 WEL (and EiffelVision2) not functional

Problem Report Summary
Submitter: titoui
Category: WEL
Priority: High
Date: 2012/05/16
Class: Bug
Severity: Serious
Number: 18190
Release: 7.0.8.8074 GPL Edition - windows
Confidential: No
Status: Analyzed
Responsible:
Environment: System Windows 7 32 bits C compiler: mingw
Synopsis: WEL (and EiffelVision2) not functional

Description
When I precompile WEL library, the compilation failed with this error:

  # gcc.exe: Shlwapi.lib: No such file or directory 

On the Eiffel Software Users mailling list, a user tell me to change the "Shlwapi.lib" by "-lshlwapi" in the $ISE_EIFFEL\library\wel\wel.ecf file.I did this (upload file wel1.ecf) and I got the following error:

  # ld.exe: cannot find -lshlwapi
  # make: *** [precomp.lib] Error 1

After that, I try to replace the "-lshlwapi" with the full path of the libshlwapi.a file: "'C:\Program Files\Eiffel Software\EiffelStudio 7.0 GPL\gcc\windows\mingw\i686-w64-mingw32\lib\libshlwapi.a'"(upload file wel2.ecf). I also try to use the full path of the Shlwapi.lib file of the Microsoft SDK: "'C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib\Shlwapi.lib'" (upload file wel3.ecf). After that, the library precompile correctly, but when I start an application(upload file build_project.ecf, Makefile, Makefile.SH) using the WEL or Vision2 precomp library, the application didn't launch and I've got a 0xc0000005 error in Windows. I upload a snapshot of the Windows error (upload file error.png). The error is in french I'm afraid (my Windows is in french).

I consider the bug very important because it completely remove the Vision2 fonctionnality of EiffelStudio for the ones that use mingw (and I think it is a major functionnality).
To Reproduce
- Install EiffelStudio with mingw on a Windows 7 32 bits.
- Create a window with EiffelBuild and generate code.
- With EiffelStudio, open the ecf file created with EiffelBuild.
- The compilation of the Vision2 precompilation library failed
Problem Report Interactions
From:manus_eiffel    Date:2012/05/17    Download   
Please connect to:

https://eiffel.webex.com/eiffel/e.php?AT=WMI&EventID=201788267&PW=08581e041619024344&RT=MiM0

From:titoui    Date:2012/05/17    Download   
Just to let you know that I am available for the next hour.

From:manus_eiffel    Date:2012/05/16    Download   
If you could do 6h30 PST or even now in the next hour, let us know.

From:titoui    Date:2012/05/16    Download   
When are you open. For me, the best time are always in the morning before 10h (Eastern time) but I believe that you will be sleeping or just waking up (I presume that you are in California). Can you do it on weekend. If not, It will have to wait to next Monday. 

From:manus_eiffel    Date:2012/05/16    Download   
When is a good time to look at your computer? We can perform a webex session which will let me see your computer and resolve the problem.

From:titoui    Date:2012/05/16    Download   
I forgot to give you the file you ask me. So I send you:

- The wel.ecf file (see wel-new.ecf)
- The Vision2 precompile Makefile without modification (see Makefile-vision)
- The Vision2 precompile Makefile.SH without modification (see Makefile-vision.SH)
- The Makefile of the project create with EiffelBuild (see Makefile-project)
- The Makefile.SH of the project create with EiffelBuild (see Makefile-project.SH)

Attachment: wel-new.ecf     Size:3023
Attachment: Makefile-vision     Size:18541
Attachment: Makefile-vision.SH     Size:14681
Attachment: Makefile-project     Size:9737
Attachment: Makefile-project.SH     Size:5711
From:titoui    Date:2012/05/16    Download   
I already try the -lshlwapi in the WEL.ecf file. But, when I try to precompile Vision2 or WEL, it gave me the following compilation error:

 # c:\Program Files\Eiffel Software\EiffelStudio 7.0 GPL\gcc\windows\mingw\bin\ld.exe: cannot find -lshlwapi

I try to edit the makefile of the precompilation to add the following option in the ld command to create precomp.lib (upload file makefile2).

 # -L"C:\Program Files\Eiffel Software\EiffelStudio 7.0 GPL\gcc\windows\mingw\i686-w64-mingw32\lib"

After that, the precompilation succeeded, and the compilation of the Vision2 project succeeded too. But when I launch the application, I've got a library entry point error. I send you the error in french (upload file error2.png).

Attachment: error2.png     Size:8923
Attachment: Makefile2     Size:18638
From:manus_eiffel    Date:2012/05/16    Status: Analyzed    Download   
Could you try again by putting `-lshlwapi' in your ECF instead of trying to use the Microsoft one which is most likely incompatible with mingw? Then send us the Makefile or Makefile.SH.

This particular problem is solved in 7.1 but we want to make sure that you can use WEL/Vision2 with 7.0 as well.

From:titoui    Date:2012/05/16    Download   
Attachments for problem report #18190

Attachment: wel1.ecf     Size:3023
Attachment: wel2.ecf     Size:3121
Attachment: wel3.ecf     Size:3077
Attachment: build_project.ecf     Size:1375
Attachment: Makefile     Size:9996
Attachment: Makefile.SH     Size:5769
Attachment: error.png     Size:25301