Ralf Wildenhues <mailto:[EMAIL PROTECTED]> wrote: > * Duft Markus wrote on Tue, Jan 30, 2007 at 09:02:24AM CET: >> Ralf Wildenhues <mailto:[EMAIL PROTECTED]> wrote: >>> * Duft Markus wrote on Fri, Jan 19, 2007 at 05:28:41PM CET: >>>> >>>> Sorry, i must correct myself. $EXEEXT *is* used *sometimes* and as >>>> far as my situation is concerned, completely in the wrong places... >>> >>> Well, it matches the Cygwin semantics of .exe interpolation: >>> <http://cygwin.com/cygwin-ug-net/using-specialnames.html#id4729824>. >>> [...] You don't describe your situation sufficiently well for >>> somebody else to do anything about it. Do you use Cygwin, MinGW, >>> or Interix? Native or cross-compile + simulator? What semantics >>> does the system in question have wrt. suffix interpolation? > > With the above question ... > >> The compiler i use is WGCC (still @ sourceforge ;o)) which i wrote >> myself. The sematics for executable extensions are configurable, >> which means one can set the default output filename in a >> configuration file. > > ... I meant the system (shell, libc), rather than the compiler here. > Your compiler isn't going to try to execute those files.
Hi, It's Interix's libc (kind of a pure POSIX implementation, which does not know any windows paths or extensions). The shells in use are: /bin/sh -> /bin/ksh which seems to be one or another version of PDKSH, and a self built BASH (built with gcc 3.3 from interix. Both don't pay attention to any extension so no matter where, the name(s) given must be exact on interix. The thing is, that there is a trick to make KSH recognize extensions somehow, but it never worked for me. Additionally it would require some special setup of the PATH variable, which i think is not very portable, not even between different interix machines ;o//. > > So, the question still stands: which system fails to execute > ./foo > > if there is an executable foo.exe in the current directory? Since > apparently I don't know it, and apparently it's not Cygwin nor MinGW, > I'd like to see documentation for it, so I can fix the ChangeLog entry > below. I digged into this again a little... The problem is that there could be any shell in use that compiles on interix, not just ksh... For example a CSH comes along with interix (ok, ok, it's not used for script execution, that's still ksh... ;o)) FROM MAN KSH ON INTERIX ===================================================== PATH_WINDOWS The Interix profile file sets the PATH_WINDOWS environment variable in which you can specify a suffix matching order. This is used to look for Windows commands with standard extensions, namely .com, .exe, .ksh, .bat, and .cmd. In the Interix Korn shell, if you type the echo $PATH_WINDOWS command, you will see the default value of PATH_WINDOWS set to the following (or something similar): /dev/fs/C/WINDOWS/system32/.com,.exe,.ksh,.bat,.cmd,:/dev/fs/C/SFU/commo n/ .com,.exe,.ksh,.bat,.cmd, The path name is in POSIX format, not Win32. You can also specify your own suffix matching order. The value of PATH_WINDOWS is a colon-separated list of directory names with the following format: pathname[/suffix-list][:pathname[/suffix-list]] The suffix-list is a comma-separated list of suffixes. Each suffix starts with a period (.) and contains up to a total of three additional characters, as illustrated in this example: PATH_WINDOWS=/dev/fs/D/SFU/common/.exe,.ksh:/dev/fs/C/WINNT/system32/ .exe,.bat In this example, .exe and .ksh files will be suffix matched in the /dev/ fs/D/SFU/common directory, and .exe and .bat files in the /dev/fs/C/WINNT/ system32 directory. A file with the .exe extension will be matched in the /dev/fs/C/WINNT/system32 directory only if it is not found in the /dev/fs/ D/SFU/common directory. If you specify only the directory, such as PATH_WINDOWS=/dev/fs/C/WINNT/ system32 all the suffixes are matched in the following order: * .com * .exe * .ksh * .bat * .cmd * "" The last example in the list is empty. This indicates the lack of a suffix. For example, you can enter the following at an Interix shell prompt: PATH_WINDOWS=/dev/fs/C/WINNT/system32:/dev/fs/D/sfu/common/.exe echo $PATH_WINDOWS The echo $PATH_WINDOWS command displays: /dev/fs/C/WINNT/system32/.com,.exe,.ksh,.bat,.cmd,:/dev/fs/D/SFU/common/ .exe Note that the empty field between .cmd and : indicates that there is a "no suffix" entry in the search path. FROM MAN KSH ON INTERIX ===================================================== Again, this is for KSH, and nothing prevents peaople from using bash (which anyway is a good idea ;o)) or any other shell that compiles on interix. Cheers, Markus > > The func_exec change shouldn't be needed, something like the patch > below should be sufficient. EXEEXT should be set when you run the > test suite. > > Cheers, > Ralf > > 2007-01-30 Ralf Wildenhues <[EMAIL PROTECTED]> > > * tests/defs.m4sh (func_require, func_exec_check): When testing > for existence of required files, also try the $EXEEXT extension. > This is apparently needed on Interix. > * THANKS: Update. > Report by Markus Duft. > > Index: THANKS > =================================================================== > RCS file: /cvsroot/libtool/libtool/THANKS,v > retrieving revision 1.57 > diff -u -r1.57 THANKS > --- THANKS 21 Jan 2007 16:15:36 -0000 1.57 > +++ THANKS 30 Jan 2007 20:12:07 -0000 > @@ -101,6 +101,7 @@ > Marc Espie [EMAIL PROTECTED] > Marc J. Fraioli [EMAIL PROTECTED] > Mark Kettenis [EMAIL PROTECTED] > + Markus Duft [EMAIL PROTECTED] > Olly Betts [EMAIL PROTECTED] > Patrick Welche [EMAIL PROTECTED] > Paul Eggert [EMAIL PROTECTED] > Index: tests/defs.m4sh > =================================================================== > RCS file: /cvsroot/libtool/libtool/tests/defs.m4sh,v > retrieving revision 1.16 > diff -u -r1.16 defs.m4sh > --- tests/defs.m4sh 12 Nov 2005 09:16:56 -0000 1.16 > +++ tests/defs.m4sh 30 Jan 2007 20:35:05 -0000 > @@ -5,7 +5,7 @@ > # Gord Matzigkeit <[EMAIL PROTECTED]>, 1996 > # Gary V. Vaughan <[EMAIL PROTECTED]>, 2003 > > -# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. > +# Copyright (C) 2003, 2004, 2005, 2007 Free Software Foundation, Inc. > # This is free software; see the source for copying conditions. > There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR > A PARTICULAR PURPOSE. > > @@ -167,7 +167,7 @@ > my_files=${1+"$@"} > > for my_file in $my_files; do > - test -f "$my_file" \ > + { test -f "$my_file" || test -f "$my_file$EXEEXT"; } \ > || func_skip "You must run ${my_prereq}.test before running > $0" done > } > @@ -291,7 +291,7 @@ > $opt_debug > my_program="$1" > > - if test -f "$my_program"; then : > + if test -f "$my_program" || test -f "$my_program$EXEEXT"; then : > else > shift > func_error "$0: $my_program did not build [EMAIL PROTECTED]" _______________________________________________ http://lists.gnu.org/mailman/listinfo/libtool