From: SourceForge.net <no...@so...> - 2008-04-22 07:05:30
|
Bugs item #1928876, was opened at 2008-03-29 19:54 Message generated for change (Comment added) made by pmml You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=102435&aid=1928876&group_id=2435 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: MinGW Group: Known Feature Status: Open Resolution: Invalid Priority: 5 Private: No Submitted By: Paulo Manuel Martins Lopes (pmml) Assigned to: Nobody/Anonymous (nobody) Summary: make 3.8x fails to compile files.S Initial Comment: Hello all, I've been trying to compile some asm files and mingw32-make 3.80, 3.81 and even the latest snapshot seem to be buggy when in my project i have files with .S extension. I think that .s is an ASM code file that doesn't support pre processor and .S an ASM that supports it. Having this for base I create a file named main.S file and a simple Makefile like this: CFLAGS = -Wall CXXFLAGS = $(CFLAGS) ASFLAGS = $(CFLAGS) all: main.o with the faulty versions 3.80, 3.81 and snapshot, I get an error on GCC trying to assemble main.s (make fails to identify the right case) which fails because my main.S uses some preprocessing directives. 3.71 works fine and identifies as main.S and compiles ok! To sum up: mingw32-make 3.8x assumes all files .S are .s which leads to compilation errors mingw32-make 3.79 was good with it! ---------------------------------------------------------------------- >Comment By: Paulo Manuel Martins Lopes (pmml) Date: 2008-04-22 09:05 Message: Logged In: YES user_id=242158 Originator: YES I only use NTFS as my filesystem under windows, I know that code like: open("C:\\windows\\explorer.exe") will open the same file as: open("C:\\WINDOWS\\EXPLORER.EXE") however if a do a dir list i see that the files and directories have case sensitive names: C:\WINDOWS>dir explorer.exe Directory of C:\WINDOWS 06/13/2007 12:23 1,033,216 explorer.exe 1 File(s) 1,033,216 bytes C:\WINDOWS> What I think it should be the right behavior is to read the file/directory name and preserve the case from the underlying OS layer. Because if write a small program like: // enum_files.cpp // compile with: /clr using namespace System; using namespace System::IO; int main() { String^ folder = "C:\\"; array<String^>^ dir = Directory::GetDirectories( folder ); Console::WriteLine("--== Directories inside '{0}' ==--", folder); for (int i=0; i<dir->Length; i++) Console::WriteLine(dir[i]); array<String^>^ file = Directory::GetFiles( folder ); Console::WriteLine("--== Files inside '{0}' ==--", folder); for (int i=0; i<file->Length; i++) Console::WriteLine(file[i]); return 0; } This prints the files with their creation case sensible names. Now, If you say this breaks the build of mingw then it is another story, in that case I think i can live by building my make with the special flag that turns on case sensitiveness. ---------------------------------------------------------------------- Comment By: Earnie Boyd (earnie) Date: 2008-04-21 18:20 Message: Logged In: YES user_id=15438 Originator: NO BTW, this issue prevents mingw32-make from building the mingw runtime. Do we really want that? I've reopened the issue to continue discussion. ---------------------------------------------------------------------- Comment By: Earnie Boyd (earnie) Date: 2008-04-21 15:26 Message: Logged In: YES user_id=15438 Originator: NO mingw32-make-3.79 allowed case sensitive name patterns. After all even though the FS is case insensitive it is case preserving and allows case sensitive patterns within make to work properly. mingw32-make-3.81 has the case insensitive name patterns compile time switch enabled. Paulo will need to rebuild the make from source without the switch. I myself consider this an issue since case preserved FS names should IMO be case sensitive matched in the make process. ---------------------------------------------------------------------- Comment By: Keith Marshall (keithmarshall) Date: 2008-04-21 12:20 Message: Logged In: YES user_id=823908 Originator: NO How do you expect to discriminate between `*.S' and `*.s' files, on a case insensitive file system? IIRC, all versions of mingw32-make honour the case insensitive property of the Win32 file system, and consider *all* file and goal names as if stated in lower case *only*, (which seems inconsistent with your assertion that mingw32-make-3.79 was good with it; perhaps you are comparing mingw32-make-3.8x with *MSYS* make-3.79)? If you can't choose some alternative extension to discriminate these file types, then you cannot use mingw32-make. You can, however, use MSYS. Versions of MSYS `make' prior to make-3.81 exploited the case preserving property of the Win32 file system, to pretend case sensitivity. From MSYS make-3.81 onward, this pretence has been dropped from the default build, but continues to be offered in the guise of csmake-3.81, for those who wish, (or need), to preserve the fiction. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=102435&aid=1928876&group_id=2435 |