On Tue, Feb 21, 2017 at 12:30 PM, Leif Lindholm leif.lindholm@linaro.org wrote:
We are facing a problem when compiling Juno's Dsdt.asl file with the following GCC builds:
I don't know what AML files are, or what ASL files are, or what the Trim program is, or where your source files are, etc. I can't make sense of any of this other than this bit.
For all GCC versions above, the 1st line of Dsdt.iii lists its name & full path in lowercase: # 1 "k:\build\armjuno\debug_gcc5\aarch64\openplatformpkg\platforms\arm\juno\acpitables\acpitables\output\dsdt.i"
Compare it with Dsdt.iii after pre-processing by GCC from gcc-linaro-4.9.4-2017.01-i686-mingw32_aarch64-elf release: # 1 "k:\Build\ArmJuno\DEBUG_GCC49\AARCH64\OpenPlatformPkg\Platforms\ARM\Juno\AcpiTables\AcpiTables\OUTPUT\.\Dsdt.i"
Windows file systems are case preserving on write and case insensitive on read, so these two lines are equivalent as far as Windows is concerned. Both should work fine for any compiler related purpose. It is a little odd to change the case here though.
I doubt that gcc is messing with file names. I would suspect a newlib change.
I tried reproducing the problem with a simple testcase, but I'm having a lot of trouble getting the linaro mingw32 compiler to work on my Windows machine. The other programs work fine, but the compiler fails with a cryptic error code. Maybe some kind of dll problem?
There are times on windows where you need to convert a file name to lowercase, e.g. comparing two strings to see if they are the same file name. Maybe someplace a file name is converted to lower case for a compare, and then it accidentally uses the lowercase version instead of the original file name? That sounds feasible. Unfortunately, I can't reproduce the problem, as windows isn't cooperating.
Jim