Bug 166718 - [MAINTAINER] lang/gnat-aux: upgrade to sync with gcc 4.6.3
Summary: [MAINTAINER] lang/gnat-aux: upgrade to sync with gcc 4.6.3
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Frederic Culot
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-04-07 13:00 UTC by John Marino
Modified: 2012-04-09 12:30 UTC (History)
0 users

See Also:


Attachments
file.diff (10.14 KB, patch)
2012-04-07 13:00 UTC, John Marino
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description John Marino 2012-04-07 13:00:10 UTC
1) Upgrades from gcc 4.6.2 to gcc 4.6.3
2) Splits off Makefile.common fragment for use in other ports
3) Adds post-install warning that Ada tasking is broken for FreeBSD 9+

Regarding #3: Due to a new panic assertion added to the thread library, exiting tasks now abort with the message "thread exits with resources held!".  A significant attempt was made to patch GNAT to release thread resources on exiting tasks, but the code is highly complex and the attempts are not yet successful.  Things to note:

A) gnat-aux continues to work on FreeBSD 6.x, 7.x, and 8.x.
B) gnat-aux has always been broken on FreeBSD 9.x, but a testsuite run didn't reveal this until recently
C) gnat-aux didn't change, FreeBSD did.  It considers something a fatal error that was acceptable before and doesn't leave any method to degrade back to FreeBSD 8.x behavior other than rebuilding libpthread from source with _PTHREADS_INVARIANTS undefined.
D) A new version of gnat-aux based on gcc 4.7 will be needed to convince Adacore to take this issue seriously as it affects all POSIX platforms.  FreeBSD is the only one to detect the held resources.  (Still, the decision on the part of FreeBSD developers to make this a fatal panic is questionable).

Fix: Patch attached with submission follows:
How-To-Repeat: Regarding the FreeBSD 9.0 failures, 23 tasking test failures can be seen by doing "make test" from lang/gnat-aux.
Comment 1 Frederic Culot freebsd_committer freebsd_triage 2012-04-07 15:41:04 UTC
Responsible Changed
From-To: freebsd-ports-bugs->culot

I'll take it.
Comment 2 Frederic Culot freebsd_committer freebsd_triage 2012-04-07 16:44:18 UTC
Hi John,

thanks for this update and for your work on gnat-related ports.

However, I came into trouble here when trying to apply the diff-fortran
patch. Indeed, it seems it doesn't find the files to patch in the testsuite
(large_real_kind*). When taking a closer look at the patch it tries to apply, it
seems to me that it's related to {dragonfly,net}BSD, so I am not sure we need
those here.

A tinderbox error log could be found here:

https://redports.org/~culot/20120407144819-41367-19024/gnat-aux-20120301.log

Could you please check this issue and make sure that only FreeBSD-specific
patches are included?

Thanks again for your hard work!

Cheers,
Frederic
Comment 3 John Marino 2012-04-07 17:40:40 UTC
On 4/7/2012 17:44, Frederic Culot wrote:
> Hi John,
>
> thanks for this update and for your work on gnat-related ports.
>
> However, I came into trouble here when trying to apply the diff-fortran
> patch. Indeed, it seems it doesn't find the files to patch in the testsuite
> (large_real_kind*). When taking a closer look at the patch it tries to apply, it
> seems to me that it's related to {dragonfly,net}BSD, so I am not sure we need
> those here.
>
> A tinderbox error log could be found here:
>
> https://redports.org/~culot/20120407144819-41367-19024/gnat-aux-20120301.log
>
> Could you please check this issue and make sure that only FreeBSD-specific
> patches are included?
>
> Thanks again for your hard work!
>
> Cheers,
> Frederic


Well, I'm trying very hard not to have different versions here for 
configuration control reasons.  The diff-* files are the same for all 
platforms by design.

In this case, it seems like wrong diff file has the patches though.  It 
should be diff-fortran-testsuite, not diff-fortran, that has these.  The 
same upgrade has been on pkgsrc for weeks without a failure so this is 
curious.  Let me compare versions because this is curious.  I didn't see 
it during my testing because I always had at least one testsuite being 
requested...

John
Comment 4 John Marino 2012-04-07 17:55:33 UTC
Hi Frederic,
I compared the contents of files/ with the pkgsrc version and discovered 
the files/diff-fortran I provided is wrong.  This file was the only 
difference.  If you replace it with the version found below, it should 
work as expected:

https://raw.github.com/jsonn/pkgsrc/trunk/lang/gnat-aux/files/diff-fortran

Also, if you inspect files/diff-fortran-testsuite, you should see the 
large_real_kind patches there already.

Regards,
John
Comment 5 John Marino 2012-04-07 18:01:08 UTC
By the way, it may be that the pkgsrc diff-fortran is identical to the 
current lang/gnat-aux version, so replacing actually just restores it.

So only diff-ada and diff-core would change between gcc 4.6.2 and 4.6.3.

John
Comment 6 Frederic Culot freebsd_committer freebsd_triage 2012-04-09 12:28:32 UTC
State Changed
From-To: open->closed

Committed. Thanks!
Comment 7 dfilter service freebsd_committer freebsd_triage 2012-04-09 12:28:37 UTC
culot       2012-04-09 11:28:22 UTC

  FreeBSD ports repository

  Modified files:
    lang/gnat-aux        Makefile distinfo 
    lang/gnat-aux/files  diff-ada diff-core 
  Added files:
    lang/gnat-aux        Makefile.common 
  Log:
  - Update to 20120301 (corresponding to gcc 4.6.3)
  - Split off Makefile.common fragment for use in lang/gnatdroid-arm* ports
  
  Maintainer note:
  - Ada tasking is broken on FreeBSD-9+ and has always been but a testsuite
  run didn't reveal this until recently. Due to a new panic assertion added
  to the thread library, exiting tasks now abort with the message "thread
  exits with resources held!". A significant attempt was made to patch GNAT
  to release thread resources on exiting tasks, but the code is highly
  complex and the attemps are not yes successful.
  
  PR:             ports/166718
  Submitted by:   John Marino <draco@marino.st> (maintainer)
  Feature safe:   yes
  
  Revision  Changes    Path
  1.8       +13 -19    ports/lang/gnat-aux/Makefile
  1.1       +21 -0     ports/lang/gnat-aux/Makefile.common (new)
  1.6       +12 -12    ports/lang/gnat-aux/distinfo
  1.2       +7 -7      ports/lang/gnat-aux/files/diff-ada
  1.2       +42 -15    ports/lang/gnat-aux/files/diff-core
_______________________________________________
cvs-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"