[bug #60557] Built-in rule for preprocessing assembler programs doesn't work as documented

2021-09-06 Thread Paul D. Smith
Update of bug #60557 (project make):

  Status:None => Fixed  
 Assigned to:None => psmith 
 Open/Closed:Open => Closed 
Operating System: POSIX-Based => Any
   Fixed Release:None => SCM
   Triage Status:None => Small Effort   

___

Follow-up Comment #2:

I fixed the default value of PREPROCESS.S to match the documentation.

Thanks for reporting this!

___

Reply to this item at:

  

___
  Message sent via Savannah
  https://savannah.gnu.org/




[bug #60557] Built-in rule for preprocessing assembler programs doesn't work as documented

2021-05-09 Thread Martin Dorey
Follow-up Comment #1, bug #60557 (project make):

I thought I'd found where PREPROCESS.S was added, in 2014, under:

https://git.savannah.gnu.org/cgit/make.git/commit/?id=c0380823a27f14cdc8274ad03c0dcab216d1380b

... but I must be getting confused by the limited diff context because it's
there all the way back to 1992's initial revision:

https://git.savannah.gnu.org/cgit/make.git/commit/?id=b8593206069f19229dfb8f41233ea61d891ad6e4

The definition of CPP as $(CC) -E also goes back to 1992.  The claim in the
documentation that we use $(CPP) goes back to 1991.  The documentation's
approach seems reasonable.  Perhaps the PREPROCESS.S definition got confused
by the since-retired Xenix condition.

___

Reply to this item at:

  

___
  Message sent via Savannah
  https://savannah.gnu.org/




[bug #60557] Built-in rule for preprocessing assembler programs doesn't work as documented

2021-05-08 Thread Oliver Ebert
URL:
  

 Summary: Built-in rule for preprocessing assembler programs
doesn't work as documented
 Project: make
Submitted by: outputenable
Submitted on: Sat 08 May 2021 12:27:20 PM UTC
Severity: 3 - Normal
  Item Group: Bug
  Status: None
 Privacy: Public
 Assigned to: None
 Open/Closed: Open
 Discussion Lock: Any
   Component Version: 4.2.1
Operating System: POSIX-Based
   Fixed Release: None
   Triage Status: None

___

Details:

Hello,

I'd like to report a mismatch between documentation and implementation in GNU
Make 4.2.1 on (Debian 10 "buster") Linux.

The manual states in 10.2 Catalogue of Built-in Rules

that "n.s is made automatically from n.S by running the C preprocessor, cpp.
The precise recipe is ‘$(CPP) $(CPPFLAGS)’" (under Assembling and
preprocessing assembler programs).  Now in actuality what gets executed is
'$(CC) -E $< > $@' though.  To reproduce:


$ touch demo.S
$ make CPP=true CC=false demo.s
false -E  demo.S > demo.s


I expect something like 'true demo.S > demo.s' instead (but '$(CC) -E' is
apparently also the default value of CPP).  The observed behavior is reflected
in the source code as well if I'm not mistaken:

*
https://git.savannah.gnu.org/cgit/make.git/tree/default.c?h=4.2.1=9ab8af7cd8aaac587787d9df7e34758951d7c470#n360
*
https://git.savannah.gnu.org/cgit/make.git/tree/default.c?h=4.2.1=9ab8af7cd8aaac587787d9df7e34758951d7c470#n639

which IIUC basically says that the recipe for ".S.s" is "$(CC) -E $(CPPFLAGS)
$< > $@"---contradicting the manual.  This is also still in master.

Thanks and regards
Oliver

$ make --version
GNU Make 4.2.1
Built for x86_64-pc-linux-gnu




___

Reply to this item at:

  

___
  Message sent via Savannah
  https://savannah.gnu.org/