scons: Address issues related to gcc 4.9.1
authorAndreas Hansson <andreas.hansson@arm.com>
Sat, 27 Sep 2014 13:08:34 +0000 (09:08 -0400)
committerAndreas Hansson <andreas.hansson@arm.com>
Sat, 27 Sep 2014 13:08:34 +0000 (09:08 -0400)
Fix a number few minor issues to please gcc 4.9.1. Removing the
'-fuse-linker-plugin' flag means no libraries are part of the LTO
process, but hopefully this is an acceptable loss, as the flag causes
issues on a lot of systems (only certain combinations of gcc, ld and
ar work).

SConstruct
src/arch/isa_parser.py
src/cpu/checker/cpu.cc

index 138df137f95de1f3b465a761b32c90238de3fbbe..883a52718fe143e1ad8df338c5a8a5faa60d2bd7 100755 (executable)
@@ -602,14 +602,12 @@ if main['GCC']:
     if not GetOption('no_lto'):
         # Pass the LTO flag when compiling to produce GIMPLE
         # output, we merely create the flags here and only append
-        # them later/
+        # them later
         main['LTO_CCFLAGS'] = ['-flto=%d' % GetOption('num_jobs')]
 
         # Use the same amount of jobs for LTO as we are running
-        # scons with, we hardcode the use of the linker plugin
-        # which requires either gold or GNU ld >= 2.21
-        main['LTO_LDFLAGS'] = ['-flto=%d' % GetOption('num_jobs'),
-                               '-fuse-linker-plugin']
+        # scons with
+        main['LTO_LDFLAGS'] = ['-flto=%d' % GetOption('num_jobs')]
 
     main.Append(TCMALLOC_CCFLAGS=['-fno-builtin-malloc', '-fno-builtin-calloc',
                                   '-fno-builtin-realloc', '-fno-builtin-free'])
index 87e02cb31f1bcd7124ae9cc7a1fe7931e4cbb9f5..aa773ae800e70d631db3d82f73a683681356a7d7 100755 (executable)
@@ -856,7 +856,9 @@ class PCStateOperand(Operand):
         ctype = 'TheISA::PCState'
         if self.isPCPart():
             ctype = self.ctype
-        return "%s %s;\n" % (ctype, self.base_name)
+        # Note that initializations in the declarations are solely
+        # to avoid 'uninitialized variable' errors from the compiler.
+        return '%s %s = 0;\n' % (ctype, self.base_name)
 
     def isPCState(self):
         return 1
index c6dacf9db1a25895ab72d7d26979df5cf2ecc79d..61c127ec4c418e32883f00161f7c2150e4ee14ad 100644 (file)
@@ -298,10 +298,10 @@ CheckerCPU::writeMem(uint8_t *data, unsigned size,
    // Cannot check this is actually what went to memory because
    // there stores can be in ld/st queue or coherent operations
    // overwriting values.
-   bool extraData;
+   bool extraData = false;
    if (unverifiedReq) {
        extraData = unverifiedReq->extraDataValid() ?
-                        unverifiedReq->getExtraData() : 1;
+                        unverifiedReq->getExtraData() : true;
    }
 
    if (unverifiedReq && unverifiedMemData &&