This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH, newlib/ARM] Fix elf-nano.specs to work without -save-temps


Hi,

it turns out that the changes in
af272aca591fe1dc0f1be64ae5bda147ea98a047 only works when using gcc/g++
with -E or -save-temps, otherwise newlib's newlib.h gets used even if
-specs=nano.specs is specified [1]. This is because the driver only
use cpp_options spec for the external cpp tool, not for the integrated
one.

[1] Guess the options I used to test the change...

This patch uses instead cpp_unique_options which is used in all cases:
it is used directly when the integrated preprocessor is used, and
indirectly by expansion of cpp_options otherwise.

Tested by running the following C program when building it with gcc or g++ with and without -specs=nano.specs and/or -save-temps:

#include <stdio.h>

int
main (void)
{
  printf ("%x\n", sizeof (struct _reent));
  return 0;
}


Is this ok for master?

Best regards,

Thomas
>From 36d3da3126cf70a500b4ef54710569e414f7a7ea Mon Sep 17 00:00:00 2001
From: Thomas Preud'homme <thomas.preudhomme@arm.com>
Date: Wed, 15 Feb 2017 10:51:54 +0000
Subject: [PATCH] Fix elf-nano.specs to work without -save-temps

The changes in af272aca591fe1dc0f1be64ae5bda147ea98a047 only works when
using gcc/g++ with -E or -save-temps, otherwise newlib's newlib.h gets
used even if -specs=nano.specs is specified. This is because the driver
only use cpp_options spec for the external cpp tool, not for the
integrated one.

This patch uses instead cpp_unique_options which is used in all cases:
it is used directly when the integrated preprocessor is used, and
indirectly by expansion of cpp_options otherwise.
---
 libgloss/arm/elf-nano.specs | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/libgloss/arm/elf-nano.specs b/libgloss/arm/elf-nano.specs
index 324107e..82594bd 100644
--- a/libgloss/arm/elf-nano.specs
+++ b/libgloss/arm/elf-nano.specs
@@ -1,9 +1,9 @@
 %rename link                nano_link
 %rename link_gcc_c_sequence                nano_link_gcc_c_sequence
-%rename cpp_options		nano_cpp_options
+%rename cpp_unique_options		nano_cpp_unique_options
 
-*cpp_options:
--isystem =/include/newlib-nano %(nano_cpp_options)
+*cpp_unique_options:
+-isystem =/include/newlib-nano %(nano_cpp_unique_options)
 
 *nano_libc:
 -lc_nano
-- 
1.9.1


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]