--disable-install-libiberty and libiberty.a
Hi all, libiberty.a is built and installed by a number of packages, such as binutils, gcc, gdb. When packaging for an OS, it's desirable to only have libiberty.a installed by one package to avoid conflicts as to which package 'owns' the file. Related to this are the following questions: 1) We currently assume that binutils is 'upstream' for libiberty development, and should therefore 'own' the libiberty.a file. Is that assumption correct? 2) The --disable-install-libiberty configure switch for GCC does *not* suppress the installation of libiberty.a (see also [0] and [1]). It's unclear whether it should as the './configure --help' output only mentions the suppression of header installation, but libiberty.texi mentions the suppression of libiberty.a as well. Do folks here think that '--disable-install-libiberty' should suppress installation of the archive as well as the headers? If so, is the fact that it doesn't a GCC bug or a binutils bug (if the assumption in 1. above holds, I'd also assume that the copy of libiberty in GCC's source tree is taken verbatim from there, and therefore this is a binutils bug). Thanks, Matt. [0] http://sourceware.org/bugzilla/show_bug.cgi?id=9422 (GDB bug) [1] http://trac.macports.org/ticket/23216 (avr-binutils bug)
Re: --disable-install-libiberty and libiberty.a
On Fri, Mar 29, 2013 at 1:35 AM, Matt Burgess wrote: > > 1) We currently assume that binutils is 'upstream' for libiberty > development, and should therefore 'own' the libiberty.a file. Is that > assumption correct? No. The master sources for libiberty are in the GCC repository. > 2) The --disable-install-libiberty configure switch for GCC does *not* > suppress the installation of libiberty.a (see also [0] and [1]). It's > unclear whether it should as the './configure --help' output only > mentions the suppression of header installation, but libiberty.texi > mentions the suppression of libiberty.a as well. Do folks here think > that '--disable-install-libiberty' should suppress installation of the > archive as well as the headers? If so, is the fact that it doesn't a > GCC bug or a binutils bug (if the assumption in 1. above holds, I'd also > assume that the copy of libiberty in GCC's source tree is taken verbatim > from there, and therefore this is a binutils bug). I agree that --disable-install-libiberty should prevent installing libiberty.a. This would then be a GCC bug. Ian
Re: --disable-install-libiberty and libiberty.a
On Fri, 2013-03-29 at 06:13 -0700, Ian Lance Taylor wrote: > On Fri, Mar 29, 2013 at 1:35 AM, Matt Burgess > wrote: > > > > 1) We currently assume that binutils is 'upstream' for libiberty > > development, and should therefore 'own' the libiberty.a file. Is that > > assumption correct? > > No. The master sources for libiberty are in the GCC repository. OK, thanks, that's useful to know. > > 2) The --disable-install-libiberty configure switch for GCC does *not* > > suppress the installation of libiberty.a (see also [0] and [1]). > > I agree that --disable-install-libiberty should prevent installing > libiberty.a. This would then be a GCC bug. Thanks for confirming. This is now http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56780. Regards, Matt.
Re: [Patch, testsuite] Add missing -gdwarf-2 flag in debug/dwarf2 testcase
On 03/28/2013 06:09 PM, Mike Stump wrote: Hum… I can't help but wonder if there was supposed to be code that checks to ensure dwarf is supported and the default before doing the entire test suite. That's what I thought, yes. And we don't want to specify -gdwarf-2 explicitly, as now -gdwarf-4 is the default. Jason
[Android] The reason why -Bsymbolic is turned on by default
Hi, When compiling a shared library with "-mandroid -shared" the option -Bsymbolic for linker is turned on by default. What was the reason behind that default? Isn't using of -Bsymbolic somehow dangerous and should be avoided..? (as e.g. is explained in the mail from Richard Henderson http://gcc.gnu.org/ml/gcc/2001-05/msg01551.html). Since there is no (AFAIK) option like -Bno-symbolic we cannot use -fno-pic binary with COPY relocations in it (android dynamic loader will throw an error when there is COPY relocation against DT_SYMBOLIC library..) (I'm sorry for sending it twice to Maxim - new google interface made my text too "rich") thank you in advance, Alexander
Help for my Master thesis
Dear Ladies and Gentlemen! My name is Bernhard Kiefmann and I'm writing my Master's thesis with the topic "the suitability of the GNU C compiler used in safety-related areas". The first problem with this is that I have to check if the compiler met the requirements of the international standard IEC 61508:2010. Here I would like to ask you my question as follows: 1) What are the rules of the compiler development? Are there any diagrams of UML? Because they are a requirement of the standard. 2) Are there activities for the Functional Verification? 3) What procedures and measures for - The design and programming guidelines - Dynamic analysis and testing - Functional testing and black box testing - Ausfall-/Versagensanalyse - modeling - Performance tests - Semi Formal Methods - Static Analysis - Modular approach If you have information here for me I would rather help in assessing whether the compiler for use in safety-relevant area is suitable. The second point of my work is concerned with the treatment of releases. Are you putting any kind of evidences in your source-code and how they look like? Because the evidences should be read and analyzed and the investigation should demonstrate if the changes in the release code effects on the safety relevant area. I would like to thank you in advance for your help, stand for any questions you may have in the meantime, I remain Yours sincerely Kiefmann Bernhard bernhard.kiefm...@stud.fh-campuswien.ac.at
gcc-4.6-20130329 is now available
Snapshot gcc-4.6-20130329 is now available on ftp://gcc.gnu.org/pub/gcc/snapshots/4.6-20130329/ and on various mirrors, see http://gcc.gnu.org/mirrors.html for details. This snapshot has been generated from the GCC 4.6 SVN branch with the following options: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch revision 197252 You'll find: gcc-4.6-20130329.tar.bz2 Complete GCC MD5=322f0ad2bf1d6d83af99fdf4894b156c SHA1=912236212fda743fbcedae10efe154d50073fc69 Diffs from 4.6-20130322 are available in the diffs/ subdirectory. When a particular snapshot is ready for public consumption the LATEST-4.6 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.
Re: Help for my Master thesis
On 03/29/2013 01:35 PM, Kiefmann Bernhard wrote: Dear Ladies and Gentlemen! My name is Bernhard Kiefmann and I'm writing my Master's thesis with the topic "the suitability of the GNU C compiler used in safety-related areas". The first problem with this is that I have to check if the compiler met the requirements of the international standard IEC 61508:2010. Here I would like to ask you my question as follows: 1) What are the rules of the compiler development? Are there any diagrams of UML? Because they are a requirement of the standard. 2) Are there activities for the Functional Verification? 3) What procedures and measures for - The design and programming guidelines - Dynamic analysis and testing - Functional testing and black box testing - Ausfall-/Versagensanalyse - modeling - Performance tests - Semi Formal Methods - Static Analysis - Modular approach There is a web site that has (at least superficial) answers to most of these questions. Have you looked at: http://gcc.gnu.org/ I would recommend doing that, then asking more specific questions if you find the web site lacking. David Daney If you have information here for me I would rather help in assessing whether the compiler for use in safety-relevant area is suitable. The second point of my work is concerned with the treatment of releases. Are you putting any kind of evidences in your source-code and how they look like? Because the evidences should be read and analyzed and the investigation should demonstrate if the changes in the release code effects on the safety relevant area. I would like to thank you in advance for your help, stand for any questions you may have in the meantime, I remain Yours sincerely Kiefmann Bernhard bernhard.kiefm...@stud.fh-campuswien.ac.at
Re: Help for my Master thesis
Kiefmann Bernhard wrote: My name is Bernhard Kiefmann and I'm writing my Master's thesis with the topic "the suitability of the GNU C compiler used in safety-related areas". The first problem with this is that I have to check if the compiler met the requirements of the international standard IEC 61508:2010. Here I would like to ask you my question as follows: I think GCC developers and users have different requirements and "Functional safety of electrical/electronic/programmable electronic safety-related systems" is for most of them not the top priority and presumably difficult to achieve for the whole project. However, I know that the Ada community is wary about the issue and that GCC's gnat (GCC' Ada compiler) is used in safety-critical areas. Also AdaCore (main contributor to the gnat development) advertises "Aids in establishing certification requirements (DO-178B level A / DO-178C-ready, EN 50128, IEC 61508, ECCS-E40B)". See also gcc.gnu.org/wiki/cauldron2012?action=AttachFile&do=get&target=petergarbett1958.pdf for someone using GCC's Ada compiler for a project, requiring DO178-B/C certification. Thus, I think the GCC Ada developers/AdaCore developers should be best suited to answer your questions. I will try to give a first answer to your questions, but as I did not have anything to do with safety certification, I won't be able to give perfect answers. 1) What are the rules of the compiler development? Are there any diagrams of UML? Because they are a requirement of the standard. Let's start with bugs as there the scheme is a bit easier: If a bug is found and analyzed and a patch has been found, the patch is submitted together with a test case, which becomes part of the regression test suite. Before submitting the patch, it is required to do a build (bootstrap) of the compiler and a run of the test suite without any (new) failure. The patch is then submitted to the gcc-patches mailing list, which allows others to comment and nonobvious patches require the approval prior checkin. - The bootstrap and test-suite run is only done for one architecture, however, as others build+regression test the compiler on various systems regularly, platform specific issues are also detected. Additionally, some other applications/benchmarks/testsuite are also regularly run. Regarding the addition of new features: It really depends on the developer; I think most do not use UML, but some may. Actually, a compiler is a rather complex program such that UML does not seem to be a practical approach for the development. Nor is it possible to test all possible code paths. I also believe that a compiler is not required to be developed using UML - contrary to programs requiring safety certification. In any case, I am pretty sure that GNAT is used in safety critical application, which pass the certification. If I recall correctly some talk by GNAT/AdaCore developers, for certification, they need to prove that the input GNAT code leads to correct assembler at the end - how it reaches the code is not important. But proving that is does, is a bit cumbersome. 2) Are there activities for the Functional Verification? For the compiler itself, there is only manually writing test cases for new features which should try to give a broad coverage of the new feature, including both valid and invalid (to be diagnosed) code and both compile and run-time test, partially with inspecting the generated code. Plus code-review which does nor really count as formal verification. However, for applications using GCC, there exist tools. See for instance, http://www.open-do.org/projects/hi-lite/ which is in the context of functional verification and GCC's gnat/C compilers. If you have information here for me I would rather help in assessing whether the compiler for use in safety-relevant area is suitable. Well, given that it is used to create programs for safety critical areas, certification agencies seem to regard it (in conjunction with suitable verifications) as suitable ;-) I hope it helps a bit - any that you will get replies from others who know better how the safety-related certification works. And good luck with your thesis! Tobias
Is this power gcc bug?
Hi I built a native power gcc, and used it to build 403.gcc in SPEC2006, I got the following error when I specify -m32 In file included from rtl.c:188:0: machmode.def:79:1: warning: left shift count >= width of type [enabled by default] DEF_MACHMODE (SImode, "SI", MODE_INT, BITS_PER_UNIT*4, 4, 4, DImode, VOIDmode) ^ machmode.def:79:1: error: initializer element is not constant machmode.def:79:1: error: (near initialization for 'mode_mask_array[4]') machmode.def:89:1: warning: left shift count >= width of type [enabled by default] DEF_MACHMODE (PSImode, "PSI", MODE_PARTIAL_INT, BITS_PER_UNIT*4, 4, 4, PDImode, VOIDmode) ^ machmode.def:89:1: error: initializer element is not constant machmode.def:89:1: error: (near initialization for 'mode_mask_array[10]') machmode.def:95:1: warning: left shift count >= width of type [enabled by default] DEF_MACHMODE (SFmode, "SF", MODE_FLOAT, BITS_PER_UNIT*4, 4, 4, DFmode, VOIDmode) ^ machmode.def:95:1: error: initializer element is not constant machmode.def:95:1: error: (near initialization for 'mode_mask_array[15]') machmode.def:102:1: warning: left shift count >= width of type [enabled by default] DEF_MACHMODE (HCmode, "HC", MODE_COMPLEX_FLOAT, BITS_PER_UNIT*4, 4, 2, SCmode, HFmode) ^ machmode.def:102:1: error: initializer element is not constant machmode.def:102:1: error: (near initialization for 'mode_mask_array[20]') machmode.def:109:1: warning: left shift count >= width of type [enabled by default] DEF_MACHMODE (CHImode, "CHI", MODE_COMPLEX_INT, BITS_PER_UNIT*4, 4, 2, CSImode, HImode) ^ machmode.def:109:1: error: initializer element is not constant machmode.def:109:1: error: (near initialization for 'mode_mask_array[26]') machmode.def:122:1: warning: left shift count >= width of type [enabled by default] DEF_MACHMODE (V2HImode, "V2HI", MODE_VECTOR_INT, BITS_PER_UNIT*4, 4, 2, V8QImode, HImode) ^ machmode.def:122:1: error: initializer element is not constant machmode.def:122:1: error: (near initialization for 'mode_mask_array[32]') machmode.def:126:1: warning: left shift count >= width of type [enabled by default] DEF_MACHMODE (V4QImode, "V4QI", MODE_VECTOR_INT, BITS_PER_UNIT*4, 4, 1, V2HImode, QImode) ^ machmode.def:126:1: error: initializer element is not constant machmode.def:126:1: error: (near initialization for 'mode_mask_array[35]') machmode.def:159:1: warning: left shift count >= width of type [enabled by default] CC (CCmode, "CC") ^ machmode.def:159:1: error: initializer element is not constant machmode.def:159:1: error: (near initialization for 'mode_mask_array[52]') machmode.def:162:1: warning: left shift count >= width of type [enabled by default] EXTRA_CC_MODES ^ machmode.def:162:1: error: initializer element is not constant machmode.def:162:1: error: (near initialization for 'mode_mask_array[53]') machmode.def:162:1: warning: left shift count >= width of type [enabled by default] machmode.def:162:1: error: initializer element is not constant machmode.def:162:1: error: (near initialization for 'mode_mask_array[54]') machmode.def:162:1: warning: left shift count >= width of type [enabled by default] machmode.def:162:1: error: initializer element is not constant machmode.def:162:1: error: (near initialization for 'mode_mask_array[55]') machmode.def:162:1: warning: left shift count >= width of type [enabled by default] machmode.def:162:1: error: initializer element is not constant machmode.def:162:1: error: (near initialization for 'mode_mask_array[56]') machmode.def:162:1: warning: left shift count >= width of type [enabled by default] machmode.def:162:1: error: initializer element is not constant machmode.def:162:1: error: (near initialization for 'mode_mask_array[57]') machmode.def:162:1: warning: left shift count >= width of type [enabled by default] machmode.def:162:1: error: initializer element is not constant machmode.def:162:1: error: (near initialization for 'mode_mask_array[58]') The command line that caused the error is: /trunkbin/bin/gcc -c -o rtl.o -DSPEC_CPU -DNDEBUG -I. -O2 -DSPEC_CPU_LP64 -m32rtl.c The preprocessed source code that caused the error is: ((8*4) >= (8 * 8)) ? ~(unsigned long) 0 : ((unsigned long) 1 << (8*4)) - 1, The left shift count is 32, it is actually less than the width of unsigned long 64. Is this a gcc bug? My gcc is configured as: ../trunk/configure --enable-threads=posix --enable-c99 --enable-long-long --build=powerpc-linux-gnu --with-gnu-as --with-gnu-ld --enable-languages=c,c++,fortran --enable-targets=powerpc-linux,powerpc64-linux --disable-bootstrap thanks Carrot
Re: Help for my Master thesis
On 3/29/2013 1:35 PM, Kiefmann Bernhard wrote: Dear Ladies and Gentlemen! My name is Bernhard Kiefmann and I'm writing my Master's thesis with the topic "the suitability of the GNU C compiler used in safety-related areas". The first problem with this is that I have to check if the compiler met the requirements of the international standard IEC 61508:2010. Here I would like to ask you my question as follows: 1) What are the rules of the compiler development? Are there any diagrams of UML? Because they are a requirement of the standard. 2) Are there activities for the Functional Verification? 3) What procedures and measures for - The design and programming guidelines - Dynamic analysis and testing - Functional testing and black box testing - Ausfall-/Versagensanalyse - modeling - Performance tests - Semi Formal Methods - Static Analysis - Modular approach If you have information here for me I would rather help in assessing whether the compiler for use in safety-relevant area is suitable. The second point of my work is concerned with the treatment of releases. Are you putting any kind of evidences in your source-code and how they look like? Because the evidences should be read and analyzed and the investigation should demonstrate if the changes in the release code effects on the safety relevant area. I would like to thank you in advance for your help, stand for any questions you may have in the meantime, I remain Yours sincerely Kiefmann Bernhard bernhard.kiefm...@stud.fh-campuswien.ac.at For aerospace applications, RTCA/DO-178C entitled "Software Considerations in Airborne Systems and Equipment Certification" governs all aspects of software safety. This document and its supplements addresses all of the information that you're interested in. DO-333 entitled "Formal Methods Supplement to DO-178C and DO-278A", DO-332 entitled "Object-Oriented Technology and Related Techniques Supplement to DO-178C and DO-278A", and DO-331 entitled "Model-Based Development and Verification Supplement to DO-178C and DO-278A" will also be relevant. These are all available from http://www.rtca.org/ (not free, sorry). The EU has identically worded documents via the EUROCAE organization (http://www.eurocae.net/). For example, ED-12C is identical to DO-178C. Rob.
Re: Is this power gcc bug?
On Fri, Mar 29, 2013 at 04:58:50PM -0700, Carrot Wei wrote: > /trunkbin/bin/gcc -c -o rtl.o -DSPEC_CPU -DNDEBUG -I. -O2 > -DSPEC_CPU_LP64 -m32rtl.c You've given contradictory options. -m32 is *not* LP64. > The left shift count is 32, it is actually less than the width of > unsigned long 64. Nope, unsigned long is 32 bits for -m32. -- Alan Modra Australia Development Lab, IBM
Re: [Patch, testsuite] Add missing -gdwarf-2 flag in debug/dwarf2 testcase
On Fri, Mar 29, 2013 at 02:46:49PM -0400, Jason Merrill wrote: > On 03/28/2013 06:09 PM, Mike Stump wrote: > >Hum… I can't help but wonder if there was supposed to be code that checks to > >ensure dwarf is supported and the default before doing the entire test suite. > > That's what I thought, yes. And we don't want to specify -gdwarf-2 > explicitly, as now -gdwarf-4 is the default. > dwarf2.exp does check if DWARF is supported by compiling a test file with -gdwarf-2, but it doesn't check if it's the default. I couldn't find a way to ask gcc to just generate DWARF (default version) either. How should this be fixed? Regards Senthil