Solal | 20 Apr 12:26 2014

The P language

Hello guys!
I've an idea of new frontend for GCC.
An Objective-D# language! But say "Objective-D Sharp" is quite long, so
I call it the P language (shouldn't be confused with the P language of
Amaya) because of the BCPL : we have the B and the C, so now that's the P.
The language should be just like Objective-C++, but :
-The two languages would be compatibler (for inherit Objective-C classes
from C++ classes and vice-versa, use C++ objects in Objective-C classes
and vice-versa, declare C++ namespaces in Objective-C declarations,
declare Objective-C declarations in C++ namespaces, use C++ class
features in Objective-C classes and vice-versa, uses C++ classes in
Objective-C classes and vice-versa, etc., etc., etc.)
-The C++ would be replaced by its successor D.
-The C# features would be available (and compatible with Objective-C and
D, as I defined in the first point). The .NET framework would be
replaced by .GNU.

gccadmin | 20 Apr 00:41 2014
Picon

gcc-4.7-20140419 is now available

Snapshot gcc-4.7-20140419 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/4.7-20140419/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 4.7 SVN branch
with the following options: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch revision 209530

You'll find:

 gcc-4.7-20140419.tar.bz2             Complete GCC

  MD5=6cbba57efca0ace04fd87d015a9cb40d
  SHA1=475f08335d7aa966cd4204e9b7b811d8cc1c255c

Diffs from 4.7-20140412 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-4.7
link is updated and a message is sent to the gcc list.  Please do not use
a snapshot before it has been announced that way.

Jan-Benedict Glaw | 19 Apr 21:54 2014
Picon

[buildrobot] arm-eabi broken

Hi!

I noticed that between 704db68e45..f2de45326 (209463..r209495),
probbaly in e2ec52cad85e (r209484), building for arm-eabi breaks:

g++ -c   -g -O2 -DIN_GCC  -DCROSS_DIRECTORY_STRUCTURE  -fno-exceptions -fno-rtti
-fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual
-Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros
-Wno-overlength-strings -fno-common  -DHAVE_CONFIG_H -I. -I. -I/home/vaxbuild/repos/gcc/gcc
-I/home/vaxbuild/repos/gcc/gcc/. -I/home/vaxbuild/repos/gcc/gcc/../include
-I/home/vaxbuild/repos/gcc/gcc/../libcpp/include 
-I/home/vaxbuild/repos/gcc/gcc/../libdecnumber
-I/home/vaxbuild/repos/gcc/gcc/../libdecnumber/dpd -I../libdecnumber
-I/home/vaxbuild/repos/gcc/gcc/../libbacktrace    -o arm.o -MT arm.o -MMD -MP -MF ./.deps/arm.TPo /home/vaxbuild/repos/gcc/gcc/config/arm/arm.c
In file included from /home/vaxbuild/repos/gcc/gcc/rtl.h:24:0,
                 from /home/vaxbuild/repos/gcc/gcc/config/arm/arm.c:28:
/home/vaxbuild/repos/gcc/gcc/config/arm/arm.c: In function ‘void arm_print_operand(FILE*,
rtx, int)’:
/home/vaxbuild/repos/gcc/gcc/machmode.h:183:32: error: invalid conversion from ‘int’ to
‘machine_mode’ [-fpermissive]
        ? mode_size_inline (MODE) : mode_size[MODE]))
                                ^
/home/vaxbuild/repos/gcc/gcc/config/arm/arm.c:21433:13: note: in expansion of macro ‘GET_MODE_SIZE’
         if (GET_MODE_SIZE (mode) != 8 || !REG_P (x))
             ^
/home/vaxbuild/repos/gcc/gcc/machmode.h:183:32: error: invalid conversion from ‘int’ to
‘machine_mode’ [-fpermissive]
        ? mode_size_inline (MODE) : mode_size[MODE]))
[...]

(Continue reading)

sameeragrawal | 19 Apr 20:30 2014
Picon

GCC-4.9.0: Changing the internal object file containing the function dump during unloading

Hi,
I want to change the file in which GCC-4.9.0 writes back the function 
dump on unloading.

With every cgraph node (node) there is an associated member of type 
"lto_file_decl_data", i.e. "node->lto_file_data" . I am trying to change 
the "file_name" associated with this member. I am doing this in the file 
"cgraph.c",

file_data = node->lto_file_data;
file_data->file_name = myfilename;

The code compiled successfully but on using the executable through a 
dynamic plugin, I am getting the following error:
fatal error: bytecode stream generated with LTO version 0.0 instead of 
the expected 3.0

How can I change the required file_name.

Thanking you in advance,

Sameer Kumar Agrawal
IIT Bombay

Colin Prior | 18 Apr 22:22 2014

Update to GGC Binary Page

Colin Prior & Steve Christensen from UNIX Packages/Sunfreeware.

We have been providing GCC as a binary for Solaris for over 20 years.
Initially under sponsorship on www.sunfreeware.com and then more recently
via our subscription site www.unixpackages.com

We aim to make new binary versions available for any Solaris package that
has a security issue within 24 hours of being notified. 

We are looking to update the link on the GCC Binary page
http://gcc.gnu.org/install/binaries.html and note that it is not under CVS
control So we are writing to you to request that it is updated.

Please can you replace  the link to Sunfreeware on your Installing GCC:
Binary Page with

UNIX Packages   http://www.unixpackages.com Versions for Solaris 2.5 - 11
SPARC and X86

Many thanks in advance 

Steve & Colin

Colin Prior
UNIX Packages
+1 206 310 4610
colin <at> unixpackages.com

Bradley C. Kuszmaul | 18 Apr 20:26 2014
Picon

how to mark a memory address so that it's not instrumented by tsan

Hi, I'm trying to build a race detector for Cilk programs (as an
open-source alternative to the closed-source Intel cilkscreen race
detector).

 I'm trying to use the -fsanitize=thread to instrument the loads and
stores, and I'm also use -fcilkplus to generate cilk code at the same
time.  My plan is to replace the tsan library with my own library that
uses a near-linear time race detection algorithm.  (A race detector
that works on nested fork-join parallel programs can be faster than a
general race detector which must cope with arbitrary dependencies).

So here's the problem:  -fcilkplus introduces extra loads and stores
into the code, to interact with Cilk's work stealing scheduler runtime
system.  I don't want those loads and stores to be instrumented with
calls such as tsan_write4().

Is there some way to mark a memory access so that it's not instrumented by tsan?

Cheers
-Bradley

gccadmin | 18 Apr 00:36 2014
Picon

gcc-4.8-20140417 is now available

Snapshot gcc-4.8-20140417 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/4.8-20140417/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 4.8 SVN branch
with the following options: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_8-branch revision 209500

You'll find:

 gcc-4.8-20140417.tar.bz2             Complete GCC

  MD5=15f73bb81261a6f25eeb211b740a7aa5
  SHA1=c4ac3f3b7564a38e60ad2efcb0898499e31f7c2d

Diffs from 4.8-20140410 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-4.8
link is updated and a message is sent to the gcc list.  Please do not use
a snapshot before it has been announced that way.

Konstantin Vladimirov | 17 Apr 12:39 2014
Picon

Multiple cc's, one gcc -- is it possible?

Hi,

I want to support, say arch1 and arch2 in custom gcc in the way

gcc -march1 test.c

calls

${INSTALL}/libexec/gcc/arch1/4.8.2/cc1

and

gcc -march2 test.c

calls

${INSTALL}/libexec/gcc/arch2/4.8.2/cc1

Are there any way to do it? Maybe not exactly as I outlined, but the
whole idea is clear, I think. I looked through multilib and multiarch
options, but it seems to be nothing like this.

I may correct anything in build system and arch1 and arch2 backends,
but I don't want to change any core gcc code, say inside gcc.c. Is it
possible? Are there examples how is it possible?

---
With best regards, Konstantin

(Continue reading)

DJ Delorie | 17 Apr 05:03 2014
Picon

stack-protection vs alloca vs dwarf2


While debugging some gdb-related FAILs, I discovered that gcc's
-fstack-check option effectively calls alloca() to adjust the stack
pointer.

However, it doesn't mark the stack adjustment as FRAME_RELATED even
when it's setting up the local variables for the function.

In the case of rx-elf, for this testcase, the CFA for the function is
defined in terms of the stack pointer - and thus is incorrect after
the alloca call.

My question is: who's fault is this?  Should alloca() tell the debug
stuff that the stack pointer has changed?  Should it tell it to not
use $sp at all?  Should the debug stuff "just know" that $sp isn't a
valid choice for the CFA?

The testcase from gdb is pretty simple:

      void medium_frame ()
      {
        char S [16384];
        small_frame ();
      }

gccadmin | 17 Apr 00:40 2014
Picon

gcc-4.9-20140416 is now available

Snapshot gcc-4.9-20140416 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/4.9-20140416/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 4.9 SVN branch
with the following options: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch revision 209450

You'll find:

 gcc-4.9-20140416.tar.bz2             Complete GCC

  MD5=dda6cefa1ed78845e1e4862dc7f7522d
  SHA1=41bf62ed3008fa6fa092731e4a8bf5702521eae4

Diffs from 4.9-20140406 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-4.9
link is updated and a message is sent to the gcc list.  Please do not use
a snapshot before it has been announced that way.

Peter Schneider | 16 Apr 16:26 2014
Picon

Performance gain through dereferencing?

I have made a curious performance observation with gcc under 64 bit 
cygwin on a corei7. I'm genuinely puzzled and couldn't find any 
information about it. Perhaps this is only indirectly a gcc question 
though, bear with me.

I have two trivial programs which assign a loop variable to a local 
variable 10^8 times. One does it the obvious way, the other one accesses 
the variable through a pointer, which means it must dereference the 
pointer first. This is reflected nicely in the disassembly snippets of 
the respective loop bodies below. Funny enough, the loop with the extra 
dereferencing runs considerably faster than the loop with the direct 
assignment (>10%). While the issue (indeed the whole program ;-) ) goes 
away with optimization, in less trivial scenarios that may not be so.

My first question is: What makes the smaller code slower?
The gcc question is: Should assignment always be performed through a 
pointer if it is faster? (Probably not, but why not?) A session 
transcript including the compilable source is below.

Here are the disassembled loop bodies:

Direct access
=====================================================
         localInt = i;
    1004010e6:   8b 45 fc                mov    -0x4(%rbp),%eax
    1004010e9:   89 45 f8                mov    %eax,-0x8(%rbp)

Pointer access
=====================================================
         *localP = i;
(Continue reading)


Gmane