mirror of
https://gcc.gnu.org/git/gcc.git
synced 2026-02-22 03:46:53 -05:00
Remove .res specs to fix COFF passthrough [PR123504]
Some packages (gnulib) pass COFF object files with .res extension directly to gcc, expecting them to be passed through to the linker, instead of windres. However, the current EXTRA_DEFAULT_COMPILERS spec intercepts all .res files and runs them through windres, which fails for COFF files that are not Windows resource files (Microsoft Visual C binary resource file as identified by libmagic/file). This patch removes the .res file specs, leaving only the .rc support specs active. At a later date, this can be reviewed. The driver could inspect the .res file to see if it's a object file or, but, it's somewhat questionable if handling .res is even useful. gcc/ChangeLog: PR driver/123504 * config/i386/cygming.h (EXTRA_DEFAULT_COMPILERS): Comment out .res spec to allow COFF files with .res extension to pass through to the linker. * config/aarch64/cygming.h (EXTRA_DEFAULT_COMPILERS): Likewise. Signed-off-by: Jonathan Yong <10walls@gmail.com>
This commit is contained in:
committed by
Jonathan Yong
parent
6393102322
commit
da2229db88
@@ -261,11 +261,15 @@ still needed for compilation. */
|
||||
"%{!E:%{!M:%{!MM:windres -J rc -O coff -F pe-aarch64 \
|
||||
%{I*:-I%*} %{D*:-D%*} %{U*:-U%*} \
|
||||
%{c:%W{o*}%{!o*:-o %w%b%O}}%{!c:-o %d%w%u%O} %i}}}", \
|
||||
0, 0, 0}, \
|
||||
0, 0, 0}, /*
|
||||
{".res", "@windres-res", 0, 0, 0}, \
|
||||
{"@windres-res", \
|
||||
"%{!E:%{!M:%{!MM:windres -J res -O coff -F pe-aarch64 \
|
||||
%{c:%W{o*}%{!o*:-o %w%b%O}}%{!c:-o %d%w%u%O} %i}}}", \
|
||||
0, 0, 0},
|
||||
0, 0, 0}, */
|
||||
|
||||
/* For now, do not handle .res because some packages pass
|
||||
COFF files named .res to gcc directly, expecting them to
|
||||
be passed to the linker, not windres. See PR123504. */
|
||||
|
||||
#endif
|
||||
|
||||
@@ -491,10 +491,14 @@ do { \
|
||||
WINDRES_FORMAT_SPEC \
|
||||
"%{I*:-I%*} %{D*:-D%*} %{U*:-U%*} \
|
||||
%{c:%W{o*}%{!o*:-o %w%b%O}}%{!c:-o %d%w%u%O} %i}}}", \
|
||||
0, 0, 0}, \
|
||||
0, 0, 0}, /* \
|
||||
{".res", "@windres-res", 0, 0, 0}, \
|
||||
{"@windres-res", \
|
||||
"%{!E:%{!M:%{!MM:windres -J res -O coff " \
|
||||
WINDRES_FORMAT_SPEC \
|
||||
"%{c:%W{o*}%{!o*:-o %w%b%O}}%{!c:-o %d%w%u%O} %i}}}", \
|
||||
0, 0, 0},
|
||||
0, 0, 0}, */
|
||||
|
||||
/* For now, do not handle .res because some packages pass
|
||||
COFF files named .res to gcc directly, expecting them to
|
||||
be passed to the linker, not windres. See PR123504. */
|
||||
|
||||
Reference in New Issue
Block a user