[PATCH] libgcc: Include stdlib.h for abort() on mingw32

2024-01-30 Thread Khem Raj
libgcc/
* config/i386/enable-execute-stack-mingw32.c: Include
stdlib.h for abort() definition.

Signed-off-by: Khem Raj 
---
 libgcc/config/i386/enable-execute-stack-mingw32.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/libgcc/config/i386/enable-execute-stack-mingw32.c 
b/libgcc/config/i386/enable-execute-stack-mingw32.c
index 99006d97a4e..563de02156a 100644
--- a/libgcc/config/i386/enable-execute-stack-mingw32.c
+++ b/libgcc/config/i386/enable-execute-stack-mingw32.c
@@ -23,6 +23,7 @@
<http://www.gnu.org/licenses/>.  */
 
 #define WIN32_LEAN_AND_MEAN
+#include 
 #include 
 
 extern void __enable_execute_stack (void *);
-- 
2.43.0



Re: [PATCH v2] elf.c: initialize struct stat

2019-04-08 Thread Khem Raj
On Mon, Apr 8, 2019 at 6:47 PM Yu, Mingli  wrote:
>
>
>
> On 2019年04月08日 22:21, Jeff Law wrote:
> > On 4/8/19 12:34 AM, mingli...@windriver.com wrote:
> >> From: Mingli Yu 
> >>
> >> Initialize struct stat to fix the below
> >> build failure when -Og included in compiler flag.
> >> | 
> >> ./../../../../../../../../work-shared/gcc-8.3.0-r0/gcc-8.3.0/libsanitizer/libbacktrace/../../libbacktrace/elf.c:
> >>  In function 'elf_is_symlink':
> >> | 
> >> ../../../../../../../../../work-shared/gcc-8.3.0-r0/gcc-8.3.0/libsanitizer/libbacktrace/../../libbacktrace/elf.c:772:21:
> >>  error: 'st.st_mode' may be used uninitialized in this function 
> >> [-Werror=maybe-uninitialized]
> >> return S_ISLNK (st.st_mode);
> >>
> >> Signed-off-by: Mingli Yu 
> >> ---
> >>   libbacktrace/elf.c | 2 +-
> >>   1 file changed, 1 insertion(+), 1 deletion(-)
> > This is a false positive in -Wuninitialized that can be worked around by
> > compiling with -O2.  Please do that rather than compiling with -Og.
>
> Thanks Jeff for your respond!
>
> Hi Khem,
>
> If so, do we need to just to add some logic as DEBUG_OPTIMIZATION_append
> = " -Wno-error" for gcc-sanitizers to avoid -Og indicating the
> -Werror=maybe-uninitialized message?
>

yeah that would be fine.

> Thanks,
>
> >
> > jeff
> >


[PATCH] lto-streamer.h: Include gimple.h for LAST_AND_UNUSED_GIMPLE_CODE.

2016-04-16 Thread Khem Raj
gcc/:
2016-04-16  Khem Raj  

* lto-streamer.h: Include gimple.h for LAST_AND_UNUSED_GIMPLE_CODE.


Fixes build errors e.g.

| ../../../../../../../work-shared/gcc-6.0.0-r0/git/gcc/lto-streamer.h:159:34: 
error: 'LAST_AND_UNUSED_GIMPLE_CODE' was not declared in this scope
|LTO_bb0 = 1 + MAX_TREE_CODES + LAST_AND_UNUSED_GIMPLE_CODE,

---
 gcc/lto-streamer.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gcc/lto-streamer.h b/gcc/lto-streamer.h
index f391161..489801b 100644
--- a/gcc/lto-streamer.h
+++ b/gcc/lto-streamer.h
@@ -26,6 +26,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "plugin-api.h"
 #include "gcov-io.h"
 #include "diagnostic.h"
+#include "gimple.h"
 
 /* Define when debugging the LTO streamer.  This causes the writer
to output the numeric value for the memory address of the tree node
-- 
2.8.0



[PATCH] opts-global.c: Include gimple.h for LAST_AND_UNUSED_GIMPLE_CODE.

2016-04-20 Thread Khem Raj
gcc/:
2016-04-16  Khem Raj  

* opts-global.c: Include gimple.h for LAST_AND_UNUSED_GIMPLE_CODE.

Fixes build errors e.g.

| ../../../../../../../work-shared/gcc-6.0.0-r0/git/gcc/lto-streamer.h:159:34: 
error: 'LAST_AND_UNUSED_GIMPLE_CODE' was not declared in this scope
|LTO_bb0 = 1 + MAX_TREE_CODES + LAST_AND_UNUSED_GIMPLE_CODE,
---
 gcc/opts-global.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gcc/opts-global.c b/gcc/opts-global.c
index 989ef3d..92fb9ac 100644
--- a/gcc/opts-global.c
+++ b/gcc/opts-global.c
@@ -36,6 +36,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "plugin-api.h"
 #include "ipa-ref.h"
 #include "cgraph.h"
+#include "gimple.h"
 #include "lto-streamer.h"
 #include "output.h"
 #include "plugin.h"
-- 
2.8.0



Re: [PATCH] opts-global.c: Include gimple.h for LAST_AND_UNUSED_GIMPLE_CODE.

2016-04-21 Thread Khem Raj
On Thu, Apr 21, 2016 at 3:33 AM, Alexander Monakov  wrote:
> On Wed, 20 Apr 2016, Khem Raj wrote:
>
>> gcc/:
>> 2016-04-16  Khem Raj  
>>
>>   * opts-global.c: Include gimple.h for LAST_AND_UNUSED_GIMPLE_CODE.
>>
>> Fixes build errors e.g.
>>
>> | 
>> ../../../../../../../work-shared/gcc-6.0.0-r0/git/gcc/lto-streamer.h:159:34: 
>> error: 'LAST_AND_UNUSED_GIMPLE_CODE' was not declared in this scope
>> |LTO_bb0 = 1 + MAX_TREE_CODES + LAST_AND_UNUSED_GIMPLE_CODE,
>> ---
>>  gcc/opts-global.c | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/gcc/opts-global.c b/gcc/opts-global.c
>> index 989ef3d..92fb9ac 100644
>> --- a/gcc/opts-global.c
>> +++ b/gcc/opts-global.c
>> @@ -36,6 +36,7 @@ along with GCC; see the file COPYING3.  If not see
>>  #include "plugin-api.h"
>>  #include "ipa-ref.h"
>>  #include "cgraph.h"
>> +#include "gimple.h"
>>  #include "lto-streamer.h"
>>  #include "output.h"
>>  #include "plugin.h"
>
> The context in this patch looks like old contents of opts-global.c, prior to
> Andrew MacLeod's cleanups in December 2015.

Right. Ignore this patch, I forgot that I had local patches in OpenEmbedded
which should have been forward ported correctly.

 Here's how the includes look in
> today's gcc-6 branch:
>
> 21 #include "config.h"
> 22 #include "system.h"
> 23 #include "coretypes.h"
> 24 #include "backend.h"
> 25 #include "rtl.h"
> 26 #include "tree.h"
> 27 #include "tree-pass.h"
> 28 #include "diagnostic.h"
> 29 #include "opts.h"
> 30 #include "flags.h"
> 31 #include "langhooks.h"
> 32 #include "dbgcnt.h"
> 33 #include "debug.h"
> 34 #include "output.h"
> 35 #include "plugin.h"
> 36 #include "toplev.h"
> 37 #include "context.h"
> 38 #include "asan.h"
>
> Alexander


[PATCH] Fix parallel build

2012-03-01 Thread Khem Raj
When building in parallel (with -j8 here)
install-gcc-ar sometimes wants to install file
before the destination directory is created.

2012-02-29  Khem Raj  

* Makefile.in (install-gcc-ar): Add dependency on installdirs.
---
 gcc/Makefile.in |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index f6cf8ff..91c5794 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -4811,7 +4811,7 @@ install-collect2: collect2 installdirs
 install-lto-wrapper: lto-wrapper$(exeext)
$(INSTALL_PROGRAM) lto-wrapper$(exeext) 
$(DESTDIR)$(libexecsubdir)/lto-wrapper$(exeext)
 
-install-gcc-ar:
+install-gcc-ar: installdirs
set -e ; \
for i in ar nm ranlib ; do \
  install_name=`echo gcc-$$i|sed '$(program_transform_name)'`$(exeext) 
;\
-- 
1.7.9



[PATCH] Cpp: honor sysroot location

2023-03-01 Thread Khem Raj via Gcc-patches
Currently, if the gcc toolchain is relocated and installed from shared state 
cache, then you try and compile
preprocessed source (.i or .ii files), the compiler will try and access the 
builtin sysroot location
rather than the --sysroot option specified on the commandline. If access to 
that directory is
permission denied (unreadable), gcc will error.

This happens when ccache is in use due to the fact it uses preprocessed source 
files.

The fix below adds %I to the cpp-output spec macro so the default substitutions 
for -iprefix,
-isystem, -isysroot happen and the correct sysroot is used.

---
 gcc/cp/lang-specs.h | 2 +-
 gcc/gcc.cc  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

Signed-off-by: Khem Raj 
Signed-off-by: Yash Shinde >
---
 gcc/cp/lang-specs.h | 2 +-
 gcc/gcc.cc  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/gcc/cp/lang-specs.h b/gcc/cp/lang-specs.h
index c591d155cc1..61927869fe1 100644
--- a/gcc/cp/lang-specs.h
+++ b/gcc/cp/lang-specs.h
@@ -116,7 +116,7 @@ along with GCC; see the file COPYING3.  If not see
   {".ii", "@c++-cpp-output", 0, 0, 0},
   {"@c++-cpp-output",
   "%{!E:%{!M:%{!MM:"
-  "  cc1plus -fpreprocessed %i %(cc1_options) %2"
+  "  cc1plus -fpreprocessed %i %I %(cc1_options) %2"
   "  %{!fsyntax-only:"
   "%{fmodule-only:%{!S:-o %g.s%V}}"
   "%{!fmodule-only:%{!fmodule-header*:%(invoke_as)}}}"
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
index becc56051a8..3bc98b67b50 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -1463,7 +1463,7 @@ static const struct compiler default_compilers[] =
   %W{o*:--output-pch %*}}%V}}}", 
0, 0, 0},
   {".i", "@cpp-output", 0, 0, 0},
   {"@cpp-output",
-   "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %(cc1_options) 
%{!fsyntax-only:%(invoke_as)", 0, 0, 0},
+   "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %I %(cc1_options) 
%{!fsyntax-only:%(invoke_as)", 0, 0, 0},
   {".s", "@assembler", 0, 0, 0},
   {"@assembler",
"%{!M:%{!MM:%{!E:%{!S:as %(asm_debug) %(asm_options) %i %A ", 0, 0, 0},
-- 
2.39.0



[PATCH] gcc: armv4: pass fix-v4bx to linker to support EABI.

2023-04-06 Thread Khem Raj via Gcc-patches
The LINK_SPEC for linux gets overwritten by linux-eabi.h which
means the value of TARGET_FIX_V4BX_SPEC gets lost and as a result
the option is not passed to linker when chosing march=armv4
This patch redefines this in linux-eabi.h and reinserts it
for eabi defaulting toolchains.

Signed-off-by: Khem Raj 
Signed-off-by: Yash Shinde 

---
 gcc/config/arm/linux-eabi.h | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)
---
 gcc/config/arm/linux-eabi.h | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h
index a119875599d..e8b64c17b01 100644
--- a/gcc/config/arm/linux-eabi.h
+++ b/gcc/config/arm/linux-eabi.h
@@ -88,10 +88,14 @@
 #define MUSL_DYNAMIC_LINKER \
   "/lib/ld-musl-arm" MUSL_DYNAMIC_LINKER_E 
"%{mfloat-abi=hard:hf}%{mfdpic:-fdpic}.so.1"
 
+/* For armv4 we pass --fix-v4bx to linker to support EABI */
+#undef TARGET_FIX_V4BX_SPEC
+#define TARGET_FIX_V4BX_SPEC 
"%{mcpu=arm8|mcpu=arm810|mcpu=strongarm*|march=armv4: --fix-v4bx}"
+
 /* At this point, bpabi.h will have clobbered LINK_SPEC.  We want to
use the GNU/Linux version, not the generic BPABI version.  */
 #undef  LINK_SPEC
-#define LINK_SPEC EABI_LINK_SPEC   \
+#define LINK_SPEC TARGET_FIX_V4BX_SPEC EABI_LINK_SPEC  \
   LINUX_OR_ANDROID_LD (LINUX_TARGET_LINK_SPEC, \
   LINUX_TARGET_LINK_SPEC " " ANDROID_LINK_SPEC)
 
-- 
2.34.1