[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug #60557] Built-in rule for preprocessing assembler programs doesn't
From: |
Oliver Ebert |
Subject: |
[bug #60557] Built-in rule for preprocessing assembler programs doesn't work as documented |
Date: |
Sat, 8 May 2021 08:27:21 -0400 (EDT) |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0 |
URL:
<https://savannah.gnu.org/bugs/?60557>
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
<https://www.gnu.org/software/make/manual/html_node/Catalogue-of-Rules.html>
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&id=9ab8af7cd8aaac587787d9df7e34758951d7c470#n360
*
https://git.savannah.gnu.org/cgit/make.git/tree/default.c?h=4.2.1&id=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:
<https://savannah.gnu.org/bugs/?60557>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
- [bug #60557] Built-in rule for preprocessing assembler programs doesn't work as documented,
Oliver Ebert <=