GCC Summit - rooms
I have a 2 bedroom suite at Les Suites for June 21 through 25. I'm looking to split costs with someone for the other bedroom and / or someone for the living room + sofa bed. Preferably for all 4 nights. If interested please send me mail off-list. Also, I'll be driving from North-of-Toronto area if anyone needs a lift. Cheers, Jim. -- James Lemke [EMAIL PROTECTED] Orillia, Ontario 1992 ST1100, STOC #3750; FWD# M:245401 H:246889 Life is what happens while you're busy making other plans. --John Lennon
expanding builtins
I have a situation where a structure is not properly aligned and I want to copy it to fix this. I'm aware that -no-builtin-memcpy will suppress the expansion of memcpy() (force library calls) for a whole module. Is it possible to suppress the expansion for a single invocation? -- James Lemke [EMAIL PROTECTED] Orillia, Ontario 1992 ST1100, STOC #3750; FWD# M:245401 H:246889 Life is what happens while you're busy making other plans. --John Lennon
Re: expanding builtins
> You can: > #include > ... > extern __typeof(memcpy) my_memcpy __asm ("memcpy"); > > and use my_memcpy instead of memcpy in the place where you want to force > library call. Thanks Jakub! That worked very well. Jim. > Or you can use memcpy builtin, just tell GCC it should forget everything > it knows about alignment of whatever you know is not aligned. > void *psrc = (void *) src; > __asm ("" : "+r" (psrc)); > memcpy (dest, psrc, len); -- James Lemke [EMAIL PROTECTED] Orillia, Ontario 1992 ST1100, STOC #3750; FWD# M:245401 H:246889 Life is what happens while you're busy making other plans. --John Lennon
Gcc Summit - room share
I have booked a 2 bedroom suite at Les Suites for 10/24 - 28 (4 nights). Anyone willing to share costs can take the other room. Cheers, Jim.
R_PPC_REL24 overflow
I'm confused... While working with tools for a PowerPC 8xx I've run into a problem loading SO's: /bin/hello.x: error while loading shared libraries: /lib/libgcc_s.so.1: R_PPC_REL24 relocation at 0x0ff6c384 for symbol `__pthread_mutex_lock' out of range I'm using gcc-4.0.2+ (i686-pc-linux-gnu x powerpc-823-linux) and glibc-2.3.6. Googling for similar problems suggests that this relocation is not used when building with -fPIC, and that all PowerPC SO's should be built with -fPIC. Objdump -dR shows the reference is from gcc_personality_v0(), which is defined in gcc/unwind-c.c. gcc/Makefile.in creates libgcc.mk which is used to compile unwind-c.c with -fPIC. The generated asm makes the reference as: bl [EMAIL PROTECTED] # 141 *call_value_nonlocal_sysv/1 [length = 4] And for this, gas generates: R_PPC_REL24 __pthread_mutex_lock Can anyone help clarify what is / should be going on here? Jim. -- Jim Lemke [EMAIL PROTECTED] Orillia, Ontario
Re: R_PPC_REL24 overflow
I suppose I should summarize what this problem was in case it's useful to anyone else searching the archives. A buggy cross-build process did not create libc.so. The static linker didn't find libc.so so it silently used libc.a instead. Libc.a is not built with -fPIC so the load problem showed up. Thanks for your comments. Jim. -- Jim Lemke [EMAIL PROTECTED] Orillia, Ontario
Re: intl directory: gcc vs. src
> What do people who build in a combined tree do with intl? Do they use > the GCC version or the src tree version? Is there any consensus about > whether or not there should be a single version of intl, and if so, > which one should be used? FWIW, I have always given preference to the gcc version. -- Jim Lemke [EMAIL PROTECTED] Orillia, Ontario
comparing DejaGNU results
I wanted some mechanical way to compare the output of dejagnu runs between releases, etc. I asked a few people at the GCC Summit last year what they used or knew about. Not much came to light, so I ended up writing something of my own. It's a shell script I've been using on Linux with only trivial changes since December. The one tricky part was dealing with lines in the results file that are identical. I made the rash assumption that the relative order wouldn't change between runs and that seems to hold. The script works well although it isn't blazingly fast. My current version is attached. If others find it useful I can contribute it. Comments and suggestions are welcome. Typical invocation is something like: dg-cmp-results.sh -v "" gcc-20060328.sum gcc-20060510.sum |less for the first variation in the files, or dg-cmp-results.sh -v arm-sim gcc-20060328.sum gcc-20060510.sum |less for a specific variation. Cheers, Jim. -- Jim Lemke [EMAIL PROTECTED] Orillia, Ontario dg-cmp-results.sh Description: application/shellscript
Re: comparing DejaGNU results
On Wed, 2006-05-31 at 12:27 -0600, Jeffrey Law wrote: > On Wed, 2006-05-31 at 11:25 -0700, Joe Buck wrote: > > On Wed, May 31, 2006 at 02:13:44PM -0400, James Lemke wrote: > > > I wanted some mechanical way to compare the output of dejagnu runs > > > between releases, etc. I asked a few people at the GCC Summit last year > > > what they used or knew about. Not much came to light, so I ended up > > > writing something of my own. > > > > I thought that Jeff Law had something that compared .sum files back when > > he was RM. The description of what you wrote sounds similar. > Don't we have a comparison script in the "contrib" subdirectory? There is contrib/compare_tests although dg-cmp-results gives more control over what is considered "interesting". -- Jim Lemke [EMAIL PROTECTED] Orillia, Ontario
Re: comparing DejaGNU results
> Please do. I'd welcome it (and scripts to generate html, to track > known issues, to trim log files, to drive things and do on)... I > think having a few different styles would be good, then people can > try them all out and see which ones they like and why. Anyway, for > me, it isn't yet better: : > I tried all the results and couldn't find any that your script could > analyze, except libgomp, but only because libgomp doesn't run on my > system, so there are no results in it? Is it just me? I hand edited > my results to be the first 30 or so from the Objective C++ testsuite, > and then I got it to analyze and not dump out. > > When I tried gcc, I had a chance to notice the timings, your version: > > real8m44.413s > user2m0.714s > sys 7m54.847s > > mine: > > real0m1.994s > user0m1.756s > sys 0m0.556s As I said I had only used it on Linux, I assume you're using Darwin. I tried it there and had to fix the following. You got the first two but not the last so my script was way non-functional. sed uses -E instead of -r (as you noted) sort uses -m but not --merge (as you noted) sed doesn't honour \t or \s > :-) Maybe you only run the script on toy results? Or, do you just > drink lots of coffee? Now, I know mine is well more than 10-100x > slower than it could be, but waiting 2 seconds isn't a hardship for > me. Waiting 8 minutes strikes me as just a little slow. I said it was slow :-)> On NetBSD your approach is at least 50x faster. Strangely, on FC3 the two have similar elapsed times: time ./compare_tests gcc-sim-20050503.sum gcc-sim-20060528.sum >compare2.lst real4m0.729s user4m5.880s sys 0m0.231s time ./dg-cmp-results.sh -v "" gcc-sim-20050503.sum gcc-sim-20060528.sum >dg-cmp2.lst real4m25.941s user1m29.850s sys 3m8.021s > The output of yours doesn't seem to be targeted for human eyes, the > verbosity (at the least verbose setting) is about 121x more than mine > for two random sets I had lying around, and that is with it cutting > the output off really early due to the above problem. I predict that > in normal day to day use, it is well better than 120,000x larger. > What use do you get out of it? It obviously wasn't working properly for you due to linux - netbsd differences. wc -l *2.lst 66 compare2.lst 63 dg-cmp2.lst Results from mine should have looked like: dg-cmp-results.sh: Verbosity is 1, Variant is "" Older log file: gcc-sim-20050503.sum Test Run By jim on Mon May 2 12:29:08 2005 Target is xscale-unknown-elf Host is i686-pc-linux-gnu Newer log file: gcc-sim-20060528.sum Test Run By jim on Mon May 29 12:55:01 2006 Target is xscale-unknown-elf Host is i686-pc-linux-gnu PASS->FAIL: gcc.c-torture/execute/920428-2.c compilation, -O1 PASS->FAIL: gcc.c-torture/execute/920428-2.c compilation, -O2 PASS->FAIL: gcc.c-torture/execute/920428-2.c compilation, -O3 -fomit-frame-pointer PASS->FAIL: gcc.c-torture/execute/920428-2.c compilation, -O3 -g PASS->FAIL: gcc.c-torture/execute/920428-2.c compilation, -Os PASS->UNRESOLVED: gcc.c-torture/execute/920428-2.c execution, -O1 PASS->UNRESOLVED: gcc.c-torture/execute/920428-2.c execution, -O2 : PASS->UNRESOLVED: gcc.c-torture/execute/nestfunc-6.c execution, -Os FAIL->PASS: gcc.dg/20030324-1.c execution test FAIL->PASS: gcc.dg/debug/dwarf2/dwarf-die7.c scan-assembler 1.*DW_AT_inline FAIL->PASS: gcc.dg/range-test-1.c execution test > Mine was designed to do two things, figure out if the results are > interesting and not send email, if they are not, and to show > engineers the `interesting' detailed results in priority order. It's > meant to be run daily, and on good days, it produces no output. On > normal days, output is 20-30 lines at most. It tries to balance the > complaints with the occasional atta boy, to help with moral. Mine is used at the end of full build & test runs so a few minutes didn't bother me. A look at output like that above tells me what I need. Your approach is faster, esp. on Darwin / NetBSD. The only advantages I see to mine is handling variants (Richard's patch fixes that), verbosity control, and detail -- compare_tests only looks at X?(PASS|X?FAIL). Jim. -- Jim Lemke [EMAIL PROTECTED] Orillia, Ontario
Re: comparing DejaGNU results
Whoops... I forgot to attach my fixes, for anyone that's interested. -- Jim Lemke [EMAIL PROTECTED] Orillia, Ontario --- dg-cmp-results.sh 2006/05/31 19:22:14 1.18 +++ dg-cmp-results.sh 2006/06/01 17:53:21 @@ -31,6 +31,16 @@ if test $# -ne 3 -o ! -f "$2" -o ! -f "$ exit 1 fi +# Command differences for various platforms. +case `uname -s` in +Darwin|NetBSD) +E=-E # sed +;; +*) +E=-r # sed +;; +esac + # sections are identified by separator lines beginning with '\t\t==='. # section 0 identifies run date, target, and host. # section 1 and subsequent contain test data for a target variant. @@ -62,15 +72,15 @@ unset temp # Copy out the old file's section 0. echo "Older log file: $OFILE" -sed -r -e '/^\t+===/,$d' $OFILE +sed $E -e '/^[[:space:]]+===/,$d' $OFILE # Copy out the new file's section 0. echo "Newer log file: $NFILE" -sed -r -e '/^\t+===/,$d' $NFILE +sed $E -e '/^[[:space:]]+===/,$d' $NFILE # Create a temporary file from the old file's interesting section. -sed -r -e "1,/$header/d" \ - -e '/^\t+===/,$d' \ +sed $E -e "1,/$header/d" \ + -e '/^[[:space:]]+===/,$d' \ -e '/^[A-Z]+:/!d' \ -e 's/\r$//' \ -e 's/^/O:/' \ @@ -79,8 +89,8 @@ sed -r -e "1,/$header/d" \ >/tmp/o$$-$OBASE # Create a temporary file from the new file's interesting section. -sed -r -e "1,/$header/d" \ - -e '/^\t+===/,$d' \ +sed $E -e "1,/$header/d" \ + -e '/^[[:space:]]+===/,$d' \ -e '/^[A-Z]+:/!d' \ -e 's/\r$//' \ -e 's/^/N:/' \ @@ -94,9 +104,9 @@ sed -r -e "1,/$header/d" \ # If so, we assume that the order is the same in both files. IFS=: firstread=Y -sort --merge -s -t : -k 3b /tmp/o$$-$OBASE /tmp/n$$-$NBASE | +sort -m -s -t : -k 3b /tmp/o$$-$OBASE /tmp/n$$-$NBASE | while read -r lineon linestatus linename; do -linename=`echo "$linename" |sed -r -e 's/^ *(.*) *$/\1/'` +linename=`echo "$linename" |sed $E -e 's/^ *(.*) *$/\1/'` if test $verbose -ge 4; then case "$linestatus" in @@ -231,15 +241,15 @@ while read -r lineon linestatus linename else ##echo "$lines" |read -r prevon prevstatus prevname line=`echo "$lines" |head -n 1` - prevon=`echo "$line" |sed -r -e 's/\s*(.):([A-Z]+):(.*)$/\1/'` - prevstatus=`echo "$line" |sed -r -e 's/\s*(.):([A-Z]+):(.*)$/\2/'` - prevname=`echo "$line" |sed -r -e 's/\s*(.):([A-Z]+):(.*)$/\3/'` + prevon=`echo "$line" |sed $E -e 's/ *(.):([A-Z]+):(.*)$/\1/'` + prevstatus=`echo "$line" |sed $E -e 's/ *(.):([A-Z]+):(.*)$/\2/'` + prevname=`echo "$line" |sed $E -e 's/ *(.):([A-Z]+):(.*)$/\3/'` if test $verbose -ge 4; then echo " debug: pulled a line from the stack" fi #lines=`echo "$lines" |tail -n $numlines` - lines=`echo "$lines" |sed -e 1d` + lines=`echo "$lines" |sed $E -e 1d` fi ;; *)
Re: comparing DejaGNU results
> Your approach is faster, esp. on Darwin / NetBSD. > The only advantages I see to mine is handling variants (Richard's patch > fixes that), verbosity control, and detail -- compare_tests only looks > at X?(PASS|FAIL). Hmm.. another small point, FWIW. Both the results files I used contained the following ssequence of results: PASS: gcc.c-torture/compile/930210-1.c (test for excess errors) PASS: gcc.c-torture/compile/930210-1.c (test for excess errors) FAIL: gcc.c-torture/compile/930210-1.c (test for excess errors) FAIL: gcc.c-torture/compile/930210-1.c (test for excess errors) FAIL: gcc.c-torture/compile/930210-1.c (test for excess errors) PASS: gcc.c-torture/compile/930210-1.c (test for excess errors) FAIL: gcc.c-torture/compile/930210-1.c (test for excess errors) FAIL: gcc.c-torture/compile/930210-1.c (test for excess errors) compare_tests reported the following: Tests that now fail, but worked before: gcc.c-torture/compile/930210-1.c (test for excess errors) gcc.c-torture/compile/930210-1.c (test for excess errors) gcc.c-torture/compile/930210-1.c (test for excess errors) : Tests that now work, but didn't before: gcc.c-torture/compile/930210-1.c (test for excess errors) gcc.c-torture/compile/930210-1.c (test for excess errors) gcc.c-torture/compile/930210-1.c (test for excess errors) dg-cmp-results didn't report anything (at that verbosity) because nothing had changed. -- Jim Lemke [EMAIL PROTECTED] Orillia, Ontario
Re: comparing DejaGNU results
> > Both the results files I used contained the following ssequence of > > results: > > PASS: gcc.c-torture/compile/930210-1.c (test for excess errors) > > PASS: gcc.c-torture/compile/930210-1.c (test for excess errors) > > FAIL: gcc.c-torture/compile/930210-1.c (test for excess errors) > > FAIL: gcc.c-torture/compile/930210-1.c (test for excess errors) > > FAIL: gcc.c-torture/compile/930210-1.c (test for excess errors) > > PASS: gcc.c-torture/compile/930210-1.c (test for excess errors) > > FAIL: gcc.c-torture/compile/930210-1.c (test for excess errors) > > FAIL: gcc.c-torture/compile/930210-1.c (test for excess errors) > > This probably means you are using too old a version of DejaGnu; make sure > you are using at least 1.4.4, the minimum supported version. There are > still problems with duplicate test assertion names (e.g. bug 20771), but > there shouldn't be in c-torture if you use current DejaGnu. Thanks. Regardless, dg-cmp-results handles that situation, albeit slowly ; - )> -- Jim Lemke [EMAIL PROTECTED] Orillia, Ontario
Re: comparing DejaGNU results
I took a quick pass at implementing the comparisons in a more suitable lanugage. Run time is now a few seconds on both platforms. About the same as compare_tests on my old ibook/OSX and much faster on FC3. Trials show the same results as before. For anyone interested, the new version is attached. Jim. -- Jim Lemke [EMAIL PROTECTED] Orillia, Ontario dg-cmp-results.sh Description: application/shellscript
Re: comparing DejaGNU results
On Fri, 2006-06-02 at 16:26 -0700, Mike Stump wrote: > On Jun 2, 2006, at 11:08 AM, James Lemke wrote: > > I took a quick pass at implementing the comparisons in a more suitable > > lanugage. Run time is now a few seconds on both platforms. About the > > same as compare_tests on my old ibook/OSX and much faster on FC3. > > Since Ben and I seem interested in this, I think we should check in > this version. It seems portable enough and useful enough. Any > objections from the crowd? If not, I'll commit it to contrib/ on Monday. -- Jim Lemke [EMAIL PROTECTED] Orillia, Ontario
Re: GCC support for PowerPC VLE
On 08/08/2012 11:08 AM, William Swashbuckler wrote: Hi, I have recently read in several places that GCC now supports the PowerPC VLE instruction set architecture as a target. However, I have so far been unable to find any actual documentation on this? AFAICS the online doc doesn't show any new target options, see e.g. http://gcc.gnu.org/onlinedocs/gcc/RS_002f6000-and-PowerPC-Options.html Can anyone point me in the right direction? I hope so ; - )> I have completed the binutils submission for VLE. I am working on the gcc submission. The test results are looking good now. Patches will be posted very soon. I hope that helps. Jim. -- Jim Lemke Mentor Graphics / CodeSourcery Orillia Ontario, +1-613-963-1073
room for GCC Summit
All, I have booked a 2 bedroom suite at Les Suites for 07/17 checkin and 07/21 checkout. If someone would like to take the second bedroom (or the living room & daybed) we can split costs. -All 4 nights please -Everyone's name will be added to the reservation to avoid checkin problems. If you're interested, please send me mail off list. Jim. -- James Lemke [EMAIL PROTECTED]