bugmake - Bugs: bug #20542, Regression: windows gnumake + MKS...

 
 

bug #20542: Regression: windows gnumake + MKS shell + Special Shell Chars

Submitted by:  None
Submitted on:  Fri 20 Jul 2007 12:48:04 PM UTC  
 
Severity: 3 - NormalItem Group: None
Status: Works for mePrivacy: Public
Assigned to: NoneOpen/Closed: Closed
Component Version: NoneOperating System: MS Windows
Fixed Release: NoneTriage Status: Need Info

Add a New Comment(Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Wed 23 Oct 2013 04:04:59 AM UTC, comment #3:

6 years have passed with no further information and no additional complaints like this one. So I assume that the bug either didn't exist or was in the meantime solved.

Closing.

Eli Zaretskii <eliz>
Project Member
Fri 20 Jul 2007 09:27:05 PM UTC, comment #2:

The echo from gmake is not relevant. Try "gmake --debug=jobs ..." to see the real command-line.

Anonymous
Fri 20 Jul 2007 06:17:11 PM UTC, comment #1:

Sorry, I cannot reproduce this with a (non-MKS) port of a Unix shell. So this looks like a problem specific to MKS.

If you can step through the function that invokes external programs (process_begin, defined on w32/subproc/sub_proc.c) and its subroutine that generates the command line with which to invoke the program (make_command_line, in the same file), and tell where it fails or does something wrong for the MKS shell, I could try to find a solution.

Failing that, please tell how would you invoke the MKS shell from another Windows program, via the CreateProcess API, to run the exact same command which failed for you in the case you reported. I'm looking for any special rules for quoting or escaping quotes you need to use with the MKS shell.

Eli Zaretskii <eliz>
Project Member
Fri 20 Jul 2007 12:48:04 PM UTC, original submission:

Hi,

I think that literalizing special characters does not work anymore as it used to in 3.80. I'm using gnumake on windows together with a shell from MKS.

Given the following makefile:

--
CPP_FLAGS += /D "MYPROG=\"HALLO(TM)\""

%.exe : %.c
cl.exe $(CPP_FLAGS) $<
--
and this little C-File:
--
#include <stdio.h>

int main(int argc, char** argv) {
printf("%s", MYPROG);
return 0;
}
--

v 3.80 called the compiler just fine, it compiles and links.
v 3.81 causes the shell to complain and exit:

syntax error: got (, expecting Newline
gnumake: *** [a.exe] Error 1

Same shell, same environment, only difference the gnumake version used.

The command echoe'd by gnumake looks the same in both cases:

cl.exe /D "MYPROG=\"HALLO(TM)\"" a.c

---

The error does not happen if I use cmd.exe as shell, but that is not an option, unfortunately..

Kind Regards,

Thomas Stüfe

Anonymous

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by psmith (Updated the item)
  • -unavailable- added by eliz (Posted a comment)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 6 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Wed 23 Oct 2013 04:04:59 AM UTCelizItem GroupEnhancement=>None
      Open/ClosedOpen=>Closed
    Sat 27 Apr 2013 05:35:50 PM UTCelizItem GroupBug=>Enhancement
      StatusNone=>Works for me
      Triage StatusNone=>Need Info
    Sat 03 Jul 2010 07:08:37 PM UTCpsmithItem GroupNone=>Bug

    Back to the top


    Powered by Savane 3.1-cleanup1