public inbox for java-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* Re: [PATCH] Delete GCJ
@ 2016-09-05 22:49 Bernd Edlinger
  2016-09-06  0:20 ` Eric Gallager
  0 siblings, 1 reply; 60+ messages in thread
From: Bernd Edlinger @ 2016-09-05 22:49 UTC (permalink / raw)
  To: Andrew Haley, gcc-patches, java-patches

On 05.09.2016 17:13, Andrew Haley wrote:
 > As discussed.  I think I should ask a Global reviewer to approve this
 > one.  For obvious reasons I haven't included the diffs to the deleted
 > gcc/java and libjava directories.  The whole tree, post GCJ-deletion,
 > is at svn+ssh://gcc.gnu.org/svn/gcc/branches/gcj/gcj-deletion-branch
 > if anyone would like to try it.
 >
 > Andrew.
 >
 >
 > 2016-09-05  Andrew Haley  <aph@redhat.com>
 >
 > 	* Makefile.def: Remove libjava.
 > 	* Makefile.tpl: Likewise.
 > 	* Makefile.in: Regenerate.
 > 	* configure.ac: Likewise.
 > 	* configure: Likewise.
 > 	* gcc/java: Remove.
 > 	* libjava: Likewise.


I think you can remove libffi as well, right?


Bernd.

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-09-05 22:49 [PATCH] Delete GCJ Bernd Edlinger
@ 2016-09-06  0:20 ` Eric Gallager
  0 siblings, 0 replies; 60+ messages in thread
From: Eric Gallager @ 2016-09-06  0:20 UTC (permalink / raw)
  To: Bernd Edlinger; +Cc: Andrew Haley, gcc-patches, java-patches

On 9/5/16, Bernd Edlinger <bernd.edlinger@hotmail.de> wrote:
> On 05.09.2016 17:13, Andrew Haley wrote:
>  > As discussed.  I think I should ask a Global reviewer to approve this
>  > one.  For obvious reasons I haven't included the diffs to the deleted
>  > gcc/java and libjava directories.  The whole tree, post GCJ-deletion,
>  > is at svn+ssh://gcc.gnu.org/svn/gcc/branches/gcj/gcj-deletion-branch
>  > if anyone would like to try it.
>  >
>  > Andrew.
>  >
>  >
>  > 2016-09-05  Andrew Haley  <aph@redhat.com>
>  >
>  > 	* Makefile.def: Remove libjava.
>  > 	* Makefile.tpl: Likewise.
>  > 	* Makefile.in: Regenerate.
>  > 	* configure.ac: Likewise.
>  > 	* configure: Likewise.
>  > 	* gcc/java: Remove.
>  > 	* libjava: Likewise.
>
>
> I think you can remove libffi as well, right?
>
>


I think Go uses libffi as well; for further discussion see bug 11660:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=11660
(people there seem to think ObjC uses libffi, too, but I haven't
noticed it doing that myself)

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2017-01-23 13:42               ` Jakub Jelinek
@ 2017-01-23 14:51                 ` Andrew Haley
  0 siblings, 0 replies; 60+ messages in thread
From: Andrew Haley @ 2017-01-23 14:51 UTC (permalink / raw)
  To: Jakub Jelinek, Per Bothner; +Cc: Gerald Pfeifer, GCC Patches, GCJ-patches

On 23/01/17 13:41, Jakub Jelinek wrote:
> On Mon, Jan 23, 2017 at 04:51:44AM -0800, Per Bothner wrote:

>> The last part is moot, as we should strive to not move pages and thus break links.
> 
> I meant updating URLs in the pages when they refer to external web pages
> which move over time (or switch from http to https, or disappear, etc.).  Gerald
> does a great job handling that, but if there are too many pages for
> historical purpose only, it will make his work harder.

We can redirect to somewhere else.

Andrew.


^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2017-01-23 12:52             ` Per Bothner
@ 2017-01-23 13:42               ` Jakub Jelinek
  2017-01-23 14:51                 ` Andrew Haley
  0 siblings, 1 reply; 60+ messages in thread
From: Jakub Jelinek @ 2017-01-23 13:42 UTC (permalink / raw)
  To: Per Bothner; +Cc: Andrew Haley, Gerald Pfeifer, GCC Patches, GCJ-patches

On Mon, Jan 23, 2017 at 04:51:44AM -0800, Per Bothner wrote:
> On 01/23/2017 01:05 AM, Jakub Jelinek wrote:
> > On Mon, Jan 23, 2017 at 09:01:24AM +0000, Andrew Haley wrote:
> > > On 22/01/17 18:41, Per Bothner wrote:
> > > > In my opinion, all/most of these should be restored.
> > > 
> > > Because of the historical interest?  That's a good point, and perhaps
> > > I was too hasty.  Sorry.
> > 
> > But then it should be probably moved somewhere where Gerald won't have to
> > spent time maintaining those pages (verification of URLs in there, updating
> > them when they are moved etc.).
> 
> The last part is moot, as we should strive to not move pages and thus break links.

I meant updating URLs in the pages when they refer to external web pages
which move over time (or switch from http to https, or disappear, etc.).  Gerald
does a great job handling that, but if there are too many pages for
historical purpose only, it will make his work harder.

	Jakub

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2017-01-23  9:05           ` Jakub Jelinek
@ 2017-01-23 12:52             ` Per Bothner
  2017-01-23 13:42               ` Jakub Jelinek
  0 siblings, 1 reply; 60+ messages in thread
From: Per Bothner @ 2017-01-23 12:52 UTC (permalink / raw)
  To: Jakub Jelinek, Andrew Haley; +Cc: Gerald Pfeifer, GCC Patches, GCJ-patches

On 01/23/2017 01:05 AM, Jakub Jelinek wrote:
> On Mon, Jan 23, 2017 at 09:01:24AM +0000, Andrew Haley wrote:
>> On 22/01/17 18:41, Per Bothner wrote:
>>> In my opinion, all/most of these should be restored.
>>
>> Because of the historical interest?  That's a good point, and perhaps
>> I was too hasty.  Sorry.
>
> But then it should be probably moved somewhere where Gerald won't have to
> spent time maintaining those pages (verification of URLs in there, updating
> them when they are moved etc.).

The last part is moot, as we should strive to not move pages and thus break links.
-- 
	--Per Bothner
per@bothner.com   http://per.bothner.com/

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2017-01-23  9:01         ` Andrew Haley
@ 2017-01-23  9:05           ` Jakub Jelinek
  2017-01-23 12:52             ` Per Bothner
  0 siblings, 1 reply; 60+ messages in thread
From: Jakub Jelinek @ 2017-01-23  9:05 UTC (permalink / raw)
  To: Andrew Haley; +Cc: Per Bothner, Gerald Pfeifer, GCC Patches, GCJ-patches

On Mon, Jan 23, 2017 at 09:01:24AM +0000, Andrew Haley wrote:
> On 22/01/17 18:41, Per Bothner wrote:
> > In my opinion, all/most of these should be restored.
> 
> Because of the historical interest?  That's a good point, and perhaps
> I was too hasty.  Sorry.

But then it should be probably moved somewhere where Gerald won't have to
spent time maintaining those pages (verification of URLs in there, updating
them when they are moved etc.).  Also to make it clear that GCJ is no longer
supported.

	Jakub

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2017-01-22 18:41       ` Per Bothner
@ 2017-01-23  9:01         ` Andrew Haley
  2017-01-23  9:05           ` Jakub Jelinek
  0 siblings, 1 reply; 60+ messages in thread
From: Andrew Haley @ 2017-01-23  9:01 UTC (permalink / raw)
  To: Per Bothner, Gerald Pfeifer; +Cc: GCC Patches, GCJ-patches

On 22/01/17 18:41, Per Bothner wrote:
> In my opinion, all/most of these should be restored.

Because of the historical interest?  That's a good point, and perhaps
I was too hasty.  Sorry.

Andrew.

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2017-01-22 16:51     ` Gerald Pfeifer
  2017-01-22 17:17       ` Per Bothner
@ 2017-01-22 18:41       ` Per Bothner
  2017-01-23  9:01         ` Andrew Haley
  1 sibling, 1 reply; 60+ messages in thread
From: Per Bothner @ 2017-01-22 18:41 UTC (permalink / raw)
  To: Gerald Pfeifer, Andrew Haley; +Cc: GCC Patches, GCJ-patches

In my opinion, all/most of these should be restored.

On 01/22/2017 08:51 AM, Gerald Pfeifer wrote:
> On Fri, 30 Sep 2016, Andrew Haley wrote:
>>> Note I did not include all the removed java/* contents.  Is there
>>> anything particular you'd like to retain there?
>> No, please delete it all.
>
> Okay, so I (finally) went ahead and removed all of java/papers:
>
> cvs commit: Examining java/papers
> cvs commit: Examining java/papers/cni
> Removing java/papers/README.sgml;
> /cvs/gcc/wwwdocs/htdocs/java/papers/README.sgml,v  <--  README.sgml
> new revision: delete; previous revision: 1.1
> done
> Removing java/papers/cni.sgml;
> /cvs/gcc/wwwdocs/htdocs/java/papers/cni.sgml,v  <--  cni.sgml
> new revision: delete; previous revision: 1.5
> done
> Removing java/papers/compcon97.ps.gz;
> /cvs/gcc/wwwdocs/htdocs/java/papers/compcon97.ps.gz,v  <--  compcon97.ps.gz
> new revision: delete; previous revision: 1.1
> done
> Removing java/papers/compiling.html;
> /cvs/gcc/wwwdocs/htdocs/java/papers/compiling.html,v  <--  compiling.html
> new revision: delete; previous revision: 1.3
> done
> Removing java/papers/compjava.pdf;
> /cvs/gcc/wwwdocs/htdocs/java/papers/compjava.pdf,v  <--  compjava.pdf
> new revision: delete; previous revision: 1.1
> done
> Removing java/papers/compjava.ps.gz;
> /cvs/gcc/wwwdocs/htdocs/java/papers/compjava.ps.gz,v  <--  compjava.ps.gz
> new revision: delete; previous revision: 1.1
> done
> Removing java/papers/esc97.sgml;
> /cvs/gcc/wwwdocs/htdocs/java/papers/esc97.sgml,v  <--  esc97.sgml
> new revision: delete; previous revision: 1.1
> done
> Removing java/papers/esc97w-slides.ps.gz;
> /cvs/gcc/wwwdocs/htdocs/java/papers/esc97w-slides.ps.gz,v  <--  esc97w-slides.ps.gz
> new revision: delete; previous revision: 1.1
> done
> Removing java/papers/gcc-java.html;
> /cvs/gcc/wwwdocs/htdocs/java/papers/gcc-java.html,v  <--  gcc-java.html
> new revision: delete; previous revision: 1.6
> done
> Removing java/papers/gcc-java.ps.gz;
> /cvs/gcc/wwwdocs/htdocs/java/papers/gcc-java.ps.gz,v  <--  gcc-java.ps.gz
> new revision: delete; previous revision: 1.1
> done
> Removing java/papers/native++.html;
> /cvs/gcc/wwwdocs/htdocs/java/papers/native++.html,v  <--  native++.html
> new revision: delete; previous revision: 1.3
> done
> Removing java/papers/native++.sgml;
> /cvs/gcc/wwwdocs/htdocs/java/papers/native++.sgml,v  <--  native++.sgml
> new revision: delete; previous revision: 1.3
> done
> Removing java/papers/nosb.html;
> /cvs/gcc/wwwdocs/htdocs/java/papers/nosb.html,v  <--  nosb.html
> new revision: delete; previous revision: 1.6
> done
> Removing java/papers/nosb.ps.gz;
> /cvs/gcc/wwwdocs/htdocs/java/papers/nosb.ps.gz,v  <--  nosb.ps.gz
> new revision: delete; previous revision: 1.1
> done
> Removing java/papers/page.png;
> /cvs/gcc/wwwdocs/htdocs/java/papers/page.png,v  <--  page.png
> new revision: delete; previous revision: 1.1
> done
> Removing java/papers/table.png;
> /cvs/gcc/wwwdocs/htdocs/java/papers/table.png,v  <--  table.png
> new revision: delete; previous revision: 1.1
> done
> Removing java/papers/cni/HTML.manifest;
> /cvs/gcc/wwwdocs/htdocs/java/papers/cni/HTML.manifest,v  <--  HTML.manifest
> new revision: delete; previous revision: 1.3
> done
> Removing java/papers/cni/t1.html;
> /cvs/gcc/wwwdocs/htdocs/java/papers/cni/t1.html,v  <--  t1.html
> new revision: delete; previous revision: 1.3
> done
> Removing java/papers/cni/t1178.html;
> /cvs/gcc/wwwdocs/htdocs/java/papers/cni/t1178.html,v  <--  t1178.html
> new revision: delete; previous revision: 1.2
> done
> Removing java/papers/cni/t1215.html;
> /cvs/gcc/wwwdocs/htdocs/java/papers/cni/t1215.html,v  <--  t1215.html
> new revision: delete; previous revision: 1.2
> done
> Removing java/papers/cni/t1262.html;
> /cvs/gcc/wwwdocs/htdocs/java/papers/cni/t1262.html,v  <--  t1262.html
> new revision: delete; previous revision: 1.3
> done
> Removing java/papers/cni/t1308.html;
> /cvs/gcc/wwwdocs/htdocs/java/papers/cni/t1308.html,v  <--  t1308.html
> new revision: delete; previous revision: 1.2
> done
> Removing java/papers/cni/t1324.html;
> /cvs/gcc/wwwdocs/htdocs/java/papers/cni/t1324.html,v  <--  t1324.html
> new revision: delete; previous revision: 1.2
> done
> Removing java/papers/cni/t1331.html;
> /cvs/gcc/wwwdocs/htdocs/java/papers/cni/t1331.html,v  <--  t1331.html
> new revision: delete; previous revision: 1.2
> done
> Removing java/papers/cni/t134.html;
> /cvs/gcc/wwwdocs/htdocs/java/papers/cni/t134.html,v  <--  t134.html
> new revision: delete; previous revision: 1.3
> done
> Removing java/papers/cni/t1405.html;
> /cvs/gcc/wwwdocs/htdocs/java/papers/cni/t1405.html,v  <--  t1405.html
> new revision: delete; previous revision: 1.2
> done
> Removing java/papers/cni/t1421.html;
> /cvs/gcc/wwwdocs/htdocs/java/papers/cni/t1421.html,v  <--  t1421.html
> new revision: delete; previous revision: 1.3
> done
> Removing java/papers/cni/t1431.html;
> /cvs/gcc/wwwdocs/htdocs/java/papers/cni/t1431.html,v  <--  t1431.html
> new revision: delete; previous revision: 1.2
> done
> Removing java/papers/cni/t1457.html;
> /cvs/gcc/wwwdocs/htdocs/java/papers/cni/t1457.html,v  <--  t1457.html
> new revision: delete; previous revision: 1.1
> done
> Removing java/papers/cni/t1467.html;
> /cvs/gcc/wwwdocs/htdocs/java/papers/cni/t1467.html,v  <--  t1467.html
> new revision: delete; previous revision: 1.2
> done
> Removing java/papers/cni/t187.html;
> /cvs/gcc/wwwdocs/htdocs/java/papers/cni/t187.html,v  <--  t187.html
> new revision: delete; previous revision: 1.2
> done
>

-- 
	--Per Bothner
per@bothner.com   http://per.bothner.com/

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-09-30 15:34   ` Andrew Haley
  2017-01-22 16:51     ` Gerald Pfeifer
@ 2017-01-22 18:36     ` Gerald Pfeifer
  1 sibling, 0 replies; 60+ messages in thread
From: Gerald Pfeifer @ 2017-01-22 18:36 UTC (permalink / raw)
  To: java-patches; +Cc: gcc-patches

And here is more or less the last patch in this series, removing
java/libgcj2.html and two images (gcj.jpg and swingshot.png).

The only thing left in wwwdocs is a potential merge of java/news.html
into our general news.html that I am considering.  That'd take a bit
more time, and I'll see whether I can do that before the GCC 7.1 release.

Gerald

Index: java/libgcj2.html
===================================================================
RCS file: java/libgcj2.html
diff -N java/libgcj2.html
--- java/libgcj2.html	30 Jun 2014 09:29:09 -0000	1.12
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,38 +0,0 @@
-<html>
-
-<head>
-<title>The libgcj home page</title>
-</head>
-
-<body>
-
-    <h1>The libgcj home page</h1>
-
-    <h2>What is it?</h2>
-    
-    <p>``libgcj'' is the runtime that goes along with the <a
-    href="gcj2.html">gcj</a> front end to GCC.  libgcj includes parts
-    of the Java Class Libraries, plus glue to connect the libraries to
-    the compiler and the underlying OS.</p>
-
-    <h2>What you get</h2>
-
-    <p>libgcj eventually builds a couple of libraries (one for the
-    runtime and one for the garbage collector), a ``zip'' version of
-    the class libraries, and a program called ``jv-convert'' which can
-    be used to do character encoding transformations.</p>
-
-    <h2>What is missing?</h2>
-
-    <p>The runtime is not yet fully complete.  Parts of the standard
-    class libraries are missing (most notably AWT), though much of the
-    equivalent of JDK 1.2 has been supported.
-    Also, the bytecode interpreter available only on certain platforms.</p>
-
-    <h2>How to build it</h2>
-
-    <p>Just follow our <a href="https://gcc.gnu.org/install/">installation
-    instructions</a>.</p>
-
-</body>
-</html>
Index: java/gcj.jpg
===================================================================
RCS file: java/gcj.jpg
diff -N java/gcj.jpg
Binary files /tmp/cvseTgpza and /dev/null differ
Index: java/swingshot.png
===================================================================
RCS file: java/swingshot.png
diff -N java/swingshot.png
Binary files /tmp/cvsGkz1jF and /dev/null differ

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2017-01-22 16:51     ` Gerald Pfeifer
@ 2017-01-22 17:17       ` Per Bothner
  2017-01-22 18:41       ` Per Bothner
  1 sibling, 0 replies; 60+ messages in thread
From: Per Bothner @ 2017-01-22 17:17 UTC (permalink / raw)
  To: java-patches

On 01/22/2017 08:51 AM, Gerald Pfeifer wrote:
> On Fri, 30 Sep 2016, Andrew Haley wrote:
>>> Note I did not include all the removed java/* contents.  Is there
>>> anything particular you'd like to retain there?
>> No, please delete it all.
>
> Okay, so I (finally) went ahead and removed all of java/papers:

I don't think those should have been deleted.  There may be links to
them, and they may be historical interest.
-- 
	--Per Bothner
per@bothner.com   http://per.bothner.com/

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-09-30 15:34   ` Andrew Haley
@ 2017-01-22 16:51     ` Gerald Pfeifer
  2017-01-22 17:17       ` Per Bothner
  2017-01-22 18:41       ` Per Bothner
  2017-01-22 18:36     ` Gerald Pfeifer
  1 sibling, 2 replies; 60+ messages in thread
From: Gerald Pfeifer @ 2017-01-22 16:51 UTC (permalink / raw)
  To: Andrew Haley; +Cc: GCC Patches, GCJ-patches

On Fri, 30 Sep 2016, Andrew Haley wrote:
>> Note I did not include all the removed java/* contents.  Is there
>> anything particular you'd like to retain there?
> No, please delete it all.

Okay, so I (finally) went ahead and removed all of java/papers:

cvs commit: Examining java/papers
cvs commit: Examining java/papers/cni
Removing java/papers/README.sgml;
/cvs/gcc/wwwdocs/htdocs/java/papers/README.sgml,v  <--  README.sgml
new revision: delete; previous revision: 1.1
done
Removing java/papers/cni.sgml;
/cvs/gcc/wwwdocs/htdocs/java/papers/cni.sgml,v  <--  cni.sgml
new revision: delete; previous revision: 1.5
done
Removing java/papers/compcon97.ps.gz;
/cvs/gcc/wwwdocs/htdocs/java/papers/compcon97.ps.gz,v  <--  compcon97.ps.gz
new revision: delete; previous revision: 1.1
done
Removing java/papers/compiling.html;
/cvs/gcc/wwwdocs/htdocs/java/papers/compiling.html,v  <--  compiling.html
new revision: delete; previous revision: 1.3
done
Removing java/papers/compjava.pdf;
/cvs/gcc/wwwdocs/htdocs/java/papers/compjava.pdf,v  <--  compjava.pdf
new revision: delete; previous revision: 1.1
done
Removing java/papers/compjava.ps.gz;
/cvs/gcc/wwwdocs/htdocs/java/papers/compjava.ps.gz,v  <--  compjava.ps.gz
new revision: delete; previous revision: 1.1
done
Removing java/papers/esc97.sgml;
/cvs/gcc/wwwdocs/htdocs/java/papers/esc97.sgml,v  <--  esc97.sgml
new revision: delete; previous revision: 1.1
done
Removing java/papers/esc97w-slides.ps.gz;
/cvs/gcc/wwwdocs/htdocs/java/papers/esc97w-slides.ps.gz,v  <--  esc97w-slides.ps.gz
new revision: delete; previous revision: 1.1
done
Removing java/papers/gcc-java.html;
/cvs/gcc/wwwdocs/htdocs/java/papers/gcc-java.html,v  <--  gcc-java.html
new revision: delete; previous revision: 1.6
done
Removing java/papers/gcc-java.ps.gz;
/cvs/gcc/wwwdocs/htdocs/java/papers/gcc-java.ps.gz,v  <--  gcc-java.ps.gz
new revision: delete; previous revision: 1.1
done
Removing java/papers/native++.html;
/cvs/gcc/wwwdocs/htdocs/java/papers/native++.html,v  <--  native++.html
new revision: delete; previous revision: 1.3
done
Removing java/papers/native++.sgml;
/cvs/gcc/wwwdocs/htdocs/java/papers/native++.sgml,v  <--  native++.sgml
new revision: delete; previous revision: 1.3
done
Removing java/papers/nosb.html;
/cvs/gcc/wwwdocs/htdocs/java/papers/nosb.html,v  <--  nosb.html
new revision: delete; previous revision: 1.6
done
Removing java/papers/nosb.ps.gz;
/cvs/gcc/wwwdocs/htdocs/java/papers/nosb.ps.gz,v  <--  nosb.ps.gz
new revision: delete; previous revision: 1.1
done
Removing java/papers/page.png;
/cvs/gcc/wwwdocs/htdocs/java/papers/page.png,v  <--  page.png
new revision: delete; previous revision: 1.1
done
Removing java/papers/table.png;
/cvs/gcc/wwwdocs/htdocs/java/papers/table.png,v  <--  table.png
new revision: delete; previous revision: 1.1
done
Removing java/papers/cni/HTML.manifest;
/cvs/gcc/wwwdocs/htdocs/java/papers/cni/HTML.manifest,v  <--  HTML.manifest
new revision: delete; previous revision: 1.3
done
Removing java/papers/cni/t1.html;
/cvs/gcc/wwwdocs/htdocs/java/papers/cni/t1.html,v  <--  t1.html
new revision: delete; previous revision: 1.3
done
Removing java/papers/cni/t1178.html;
/cvs/gcc/wwwdocs/htdocs/java/papers/cni/t1178.html,v  <--  t1178.html
new revision: delete; previous revision: 1.2
done
Removing java/papers/cni/t1215.html;
/cvs/gcc/wwwdocs/htdocs/java/papers/cni/t1215.html,v  <--  t1215.html
new revision: delete; previous revision: 1.2
done
Removing java/papers/cni/t1262.html;
/cvs/gcc/wwwdocs/htdocs/java/papers/cni/t1262.html,v  <--  t1262.html
new revision: delete; previous revision: 1.3
done
Removing java/papers/cni/t1308.html;
/cvs/gcc/wwwdocs/htdocs/java/papers/cni/t1308.html,v  <--  t1308.html
new revision: delete; previous revision: 1.2
done
Removing java/papers/cni/t1324.html;
/cvs/gcc/wwwdocs/htdocs/java/papers/cni/t1324.html,v  <--  t1324.html
new revision: delete; previous revision: 1.2
done
Removing java/papers/cni/t1331.html;
/cvs/gcc/wwwdocs/htdocs/java/papers/cni/t1331.html,v  <--  t1331.html
new revision: delete; previous revision: 1.2
done
Removing java/papers/cni/t134.html;
/cvs/gcc/wwwdocs/htdocs/java/papers/cni/t134.html,v  <--  t134.html
new revision: delete; previous revision: 1.3
done
Removing java/papers/cni/t1405.html;
/cvs/gcc/wwwdocs/htdocs/java/papers/cni/t1405.html,v  <--  t1405.html
new revision: delete; previous revision: 1.2
done
Removing java/papers/cni/t1421.html;
/cvs/gcc/wwwdocs/htdocs/java/papers/cni/t1421.html,v  <--  t1421.html
new revision: delete; previous revision: 1.3
done
Removing java/papers/cni/t1431.html;
/cvs/gcc/wwwdocs/htdocs/java/papers/cni/t1431.html,v  <--  t1431.html
new revision: delete; previous revision: 1.2
done
Removing java/papers/cni/t1457.html;
/cvs/gcc/wwwdocs/htdocs/java/papers/cni/t1457.html,v  <--  t1457.html
new revision: delete; previous revision: 1.1
done
Removing java/papers/cni/t1467.html;
/cvs/gcc/wwwdocs/htdocs/java/papers/cni/t1467.html,v  <--  t1467.html
new revision: delete; previous revision: 1.2
done
Removing java/papers/cni/t187.html;
/cvs/gcc/wwwdocs/htdocs/java/papers/cni/t187.html,v  <--  t187.html
new revision: delete; previous revision: 1.2
done

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-11-21 23:23                                               ` Matthias Klose
  2016-11-22 17:13                                                 ` Sandra Loosemore
@ 2016-11-29 21:23                                                 ` Jeff Law
  1 sibling, 0 replies; 60+ messages in thread
From: Jeff Law @ 2016-11-29 21:23 UTC (permalink / raw)
  To: Matthias Klose, Rainer Orth
  Cc: Sandra Loosemore, Iain Sandoe, Mike Stump, Andrew Haley,
	GCC Patches, GCJ-patches, Peter Bergner

On 11/21/2016 04:23 PM, Matthias Klose wrote:
> On 21.11.2016 18:16, Rainer Orth wrote:
>> Hi Matthias,
>>
>>> ahh, didn't see that :-/ Now fixed, is this clearer now?
>>>
>>> The options @option{--with-target-bdw-gc-include} and
>>> @option{--with-target-bdw-gc-lib} must always specified together for
>>                                                ^ be
>
> thanks to all sorting out the documentation issues. Now attaching the updated
> diff. Ok to commit?
>
> Matthias
>
> <toplevel>
>
> 2016-11-19  Matthias Klose  <doko@ubuntu.com>
>
>         * Makefile.def: Remove reference to boehm-gc target module.
>         * configure.ac: Include pkg.m4, check for --with-target-bdw-gc
>         options and for the bdw-gc pkg-config module.
>         * configure: Regenerate.
>         * Makefile.in: Regenerate.
>
> gcc/
>
> 2016-11-19  Matthias Klose  <doko@ubuntu.com>
>
>         * doc/install.texi: Document configure options --enable-objc-gc
>         and --with-target-bdw-gc.
>
> config/
>
> 2016-11-19  Matthias Klose  <doko@ubuntu.com>
>
>         * pkg.m4: New file.
>
> libobjc/
>
> 2016-11-19  Matthias Klose  <doko@ubuntu.com>
>
>         * configure.ac (--enable-objc-gc): Allow to configure with a
>         system provided boehm-gc.
>         * configure: Regenerate.
>         * Makefile.in (OBJC_BOEHM_GC_LIBS): Get value from configure.
>         * gc.c: Include system bdw-gc headers.
>         * memory.c: Likewise
>         * objects.c: Likewise
>
> boehm-gc/
>
> 2016-11-19  Matthias Klose  <doko@ubuntu.com>
>
>         Remove
OK.

Jeff

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-11-21 23:23                                               ` Matthias Klose
@ 2016-11-22 17:13                                                 ` Sandra Loosemore
  2016-11-29 21:23                                                 ` Jeff Law
  1 sibling, 0 replies; 60+ messages in thread
From: Sandra Loosemore @ 2016-11-22 17:13 UTC (permalink / raw)
  To: Matthias Klose, Rainer Orth
  Cc: Iain Sandoe, Mike Stump, Jeff Law, Andrew Haley, GCC Patches,
	GCJ-patches, Peter Bergner

On 11/21/2016 04:23 PM, Matthias Klose wrote:
> On 21.11.2016 18:16, Rainer Orth wrote:
>> Hi Matthias,
>>
>>> ahh, didn't see that :-/ Now fixed, is this clearer now?
>>>
>>> The options @option{--with-target-bdw-gc-include} and
>>> @option{--with-target-bdw-gc-lib} must always specified together for
>>                                                 ^ be
>
> thanks to all sorting out the documentation issues. Now attaching the updated
> diff. Ok to commit?

The documentation part is OK now.

-Sandra

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-11-21 17:16                                             ` Rainer Orth
@ 2016-11-21 23:23                                               ` Matthias Klose
  2016-11-22 17:13                                                 ` Sandra Loosemore
  2016-11-29 21:23                                                 ` Jeff Law
  0 siblings, 2 replies; 60+ messages in thread
From: Matthias Klose @ 2016-11-21 23:23 UTC (permalink / raw)
  To: Rainer Orth, Matthias Klose
  Cc: Sandra Loosemore, Iain Sandoe, Mike Stump, Jeff Law,
	Andrew Haley, GCC Patches, GCJ-patches, Peter Bergner

[-- Attachment #1: Type: text/plain, Size: 1425 bytes --]

On 21.11.2016 18:16, Rainer Orth wrote:
> Hi Matthias,
> 
>> ahh, didn't see that :-/ Now fixed, is this clearer now?
>>
>> The options @option{--with-target-bdw-gc-include} and
>> @option{--with-target-bdw-gc-lib} must always specified together for
>                                                ^ be 

thanks to all sorting out the documentation issues. Now attaching the updated
diff. Ok to commit?

Matthias

<toplevel>

2016-11-19  Matthias Klose  <doko@ubuntu.com>

        * Makefile.def: Remove reference to boehm-gc target module.
        * configure.ac: Include pkg.m4, check for --with-target-bdw-gc
        options and for the bdw-gc pkg-config module.
        * configure: Regenerate.
        * Makefile.in: Regenerate.

gcc/

2016-11-19  Matthias Klose  <doko@ubuntu.com>

        * doc/install.texi: Document configure options --enable-objc-gc
        and --with-target-bdw-gc.

config/

2016-11-19  Matthias Klose  <doko@ubuntu.com>

        * pkg.m4: New file.

libobjc/

2016-11-19  Matthias Klose  <doko@ubuntu.com>

        * configure.ac (--enable-objc-gc): Allow to configure with a
        system provided boehm-gc.
        * configure: Regenerate.
        * Makefile.in (OBJC_BOEHM_GC_LIBS): Get value from configure.
        * gc.c: Include system bdw-gc headers.
        * memory.c: Likewise
        * objects.c: Likewise

boehm-gc/

2016-11-19  Matthias Klose  <doko@ubuntu.com>

        Remove


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: libobjc-bdw-gc.diff --]
[-- Type: text/x-diff; name="libobjc-bdw-gc.diff", Size: 48713 bytes --]

<toplevel>

2016-11-19  Matthias Klose  <doko@ubuntu.com>

	* Makefile.def: Remove reference to boehm-gc target module.
  	* configure.ac: Include pkg.m4, check for --with-target-bdw-gc
	options and for the bdw-gc pkg-config module.
	* configure: Regenerate.
	* Makefile.in: Regenerate.

gcc/

2016-11-19  Matthias Klose  <doko@ubuntu.com>

	* doc/install.texi: Document configure options --enable-objc-gc
	and --with-target-bdw-gc.

config/

2016-11-19  Matthias Klose  <doko@ubuntu.com>

	* pkg.m4: New file.

libobjc/

2016-11-19  Matthias Klose  <doko@ubuntu.com>

	* configure.ac (--enable-objc-gc): Allow to configure with a
	system provided boehm-gc.
	* configure: Regenerate.
	* Makefile.in (OBJC_BOEHM_GC_LIBS): Get value from configure.
	* gc.c: Include system bdw-gc headers.
	* memory.c: Likewise
	* objects.c: Likewise

boehm-gc/

2016-11-19  Matthias Klose  <doko@ubuntu.com>

	Remove

Index: Makefile.def
===================================================================
--- Makefile.def	(revision 242681)
+++ Makefile.def	(working copy)
@@ -166,7 +166,6 @@
 target_modules = { module= libgloss; no_check=true; };
 target_modules = { module= libffi; no_install=true; };
 target_modules = { module= zlib; };
-target_modules = { module= boehm-gc; };
 target_modules = { module= rda; };
 target_modules = { module= libada; };
 target_modules = { module= libgomp; bootstrap= true; lib_path=.libs; };
@@ -543,7 +542,6 @@
 // a dependency on libgcc for native targets to configure.
 lang_env_dependencies = { module=libiberty; no_c=true; };
 
-dependencies = { module=configure-target-boehm-gc; on=all-target-libstdc++-v3; };
 dependencies = { module=configure-target-fastjar; on=configure-target-zlib; };
 dependencies = { module=all-target-fastjar; on=all-target-zlib; };
 dependencies = { module=configure-target-libgo; on=configure-target-libffi; };
@@ -551,8 +549,6 @@
 dependencies = { module=all-target-libgo; on=all-target-libbacktrace; };
 dependencies = { module=all-target-libgo; on=all-target-libffi; };
 dependencies = { module=all-target-libgo; on=all-target-libatomic; };
-dependencies = { module=configure-target-libobjc; on=configure-target-boehm-gc; };
-dependencies = { module=all-target-libobjc; on=all-target-boehm-gc; };
 dependencies = { module=configure-target-libstdc++-v3; on=configure-target-libgomp; };
 dependencies = { module=configure-target-liboffloadmic; on=configure-target-libgomp; };
 dependencies = { module=configure-target-libsanitizer; on=all-target-libstdc++-v3; };
Index: config/pkg.m4
===================================================================
--- config/pkg.m4	(nonexistent)
+++ config/pkg.m4	(working copy)
@@ -0,0 +1,825 @@
+dnl pkg.m4 - Macros to locate and utilise pkg-config.   -*- Autoconf -*-
+dnl serial 11 (pkg-config-0.29)
+dnl
+dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
+dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com>
+dnl
+dnl This program is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; either version 2 of the License, or
+dnl (at your option) any later version.
+dnl
+dnl This program is distributed in the hope that it will be useful, but
+dnl WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+dnl General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program; if not, write to the Free Software
+dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+dnl 02111-1307, USA.
+dnl
+dnl As a special exception to the GNU General Public License, if you
+dnl distribute this file as part of a program that contains a
+dnl configuration script generated by Autoconf, you may include it under
+dnl the same distribution terms that you use for the rest of that
+dnl program.
+
+dnl PKG_PREREQ(MIN-VERSION)
+dnl -----------------------
+dnl Since: 0.29
+dnl
+dnl Verify that the version of the pkg-config macros are at least
+dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's
+dnl installed version of pkg-config, this checks the developer's version
+dnl of pkg.m4 when generating configure.
+dnl
+dnl To ensure that this macro is defined, also add:
+dnl m4_ifndef([PKG_PREREQ],
+dnl     [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])])
+dnl
+dnl See the "Since" comment for each macro you use to see what version
+dnl of the macros you require.
+m4_defun([PKG_PREREQ],
+[m4_define([PKG_MACROS_VERSION], [0.29])
+m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
+    [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
+])dnl PKG_PREREQ
+
+dnl PKG_PROG_PKG_CONFIG([MIN-VERSION])
+dnl ----------------------------------
+dnl Since: 0.16
+dnl
+dnl Search for the pkg-config tool and set the PKG_CONFIG variable to
+dnl first found in the path. Checks that the version of pkg-config found
+dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is
+dnl used since that's the first version where most current features of
+dnl pkg-config existed.
+AC_DEFUN([PKG_PROG_PKG_CONFIG],
+[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
+m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
+AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
+AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+	AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
+fi
+if test -n "$PKG_CONFIG"; then
+	_pkg_min_version=m4_default([$1], [0.9.0])
+	AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
+	if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+		AC_MSG_RESULT([yes])
+	else
+		AC_MSG_RESULT([no])
+		PKG_CONFIG=""
+	fi
+fi[]dnl
+])dnl PKG_PROG_PKG_CONFIG
+
+dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+dnl -------------------------------------------------------------------
+dnl Since: 0.18
+dnl
+dnl Check to see whether a particular set of modules exists. Similar to
+dnl PKG_CHECK_MODULES(), but does not set variables or print errors.
+dnl
+dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+dnl only at the first occurence in configure.ac, so if the first place
+dnl it's called might be skipped (such as if it is within an "if", you
+dnl have to call PKG_CHECK_EXISTS manually
+AC_DEFUN([PKG_CHECK_EXISTS],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+if test -n "$PKG_CONFIG" && \
+    AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
+  m4_default([$2], [:])
+m4_ifvaln([$3], [else
+  $3])dnl
+fi])
+
+dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
+dnl ---------------------------------------------
+dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting
+dnl pkg_failed based on the result.
+m4_define([_PKG_CONFIG],
+[if test -n "$$1"; then
+    pkg_cv_[]$1="$$1"
+ elif test -n "$PKG_CONFIG"; then
+    PKG_CHECK_EXISTS([$3],
+                     [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes ],
+		     [pkg_failed=yes])
+ else
+    pkg_failed=untried
+fi[]dnl
+])dnl _PKG_CONFIG
+
+dnl _PKG_SHORT_ERRORS_SUPPORTED
+dnl ---------------------------
+dnl Internal check to see if pkg-config supports short errors.
+AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi[]dnl
+])dnl _PKG_SHORT_ERRORS_SUPPORTED
+
+
+dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+dnl   [ACTION-IF-NOT-FOUND])
+dnl --------------------------------------------------------------
+dnl Since: 0.4.0
+dnl
+dnl Note that if there is a possibility the first call to
+dnl PKG_CHECK_MODULES might not happen, you should be sure to include an
+dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
+AC_DEFUN([PKG_CHECK_MODULES],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
+AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
+
+pkg_failed=no
+AC_MSG_CHECKING([for $1])
+
+_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
+_PKG_CONFIG([$1][_LIBS], [libs], [$2])
+
+m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
+and $1[]_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.])
+
+if test $pkg_failed = yes; then
+   	AC_MSG_RESULT([no])
+        _PKG_SHORT_ERRORS_SUPPORTED
+        if test $_pkg_short_errors_supported = yes; then
+	        $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
+        else 
+	        $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
+
+	m4_default([$4], [AC_MSG_ERROR(
+[Package requirements ($2) were not met:
+
+$$1_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+_PKG_TEXT])[]dnl
+        ])
+elif test $pkg_failed = untried; then
+     	AC_MSG_RESULT([no])
+	m4_default([$4], [AC_MSG_FAILURE(
+[The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+_PKG_TEXT
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
+        ])
+else
+	$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
+	$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+        AC_MSG_RESULT([yes])
+	$3
+fi[]dnl
+])dnl PKG_CHECK_MODULES
+
+
+dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+dnl   [ACTION-IF-NOT-FOUND])
+dnl ---------------------------------------------------------------------
+dnl Since: 0.29
+dnl
+dnl Checks for existence of MODULES and gathers its build flags with
+dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags
+dnl and VARIABLE-PREFIX_LIBS from --libs.
+dnl
+dnl Note that if there is a possibility the first call to
+dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to
+dnl include an explicit call to PKG_PROG_PKG_CONFIG in your
+dnl configure.ac.
+AC_DEFUN([PKG_CHECK_MODULES_STATIC],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+_save_PKG_CONFIG=$PKG_CONFIG
+PKG_CONFIG="$PKG_CONFIG --static"
+PKG_CHECK_MODULES($@)
+PKG_CONFIG=$_save_PKG_CONFIG[]dnl
+])dnl PKG_CHECK_MODULES_STATIC
+
+
+dnl PKG_INSTALLDIR([DIRECTORY])
+dnl -------------------------
+dnl Since: 0.27
+dnl
+dnl Substitutes the variable pkgconfigdir as the location where a module
+dnl should install pkg-config .pc files. By default the directory is
+dnl $libdir/pkgconfig, but the default can be changed by passing
+dnl DIRECTORY. The user can override through the --with-pkgconfigdir
+dnl parameter.
+AC_DEFUN([PKG_INSTALLDIR],
+[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+    [pkg-config installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([pkgconfigdir],
+    [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],,
+    [with_pkgconfigdir=]pkg_default)
+AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+])dnl PKG_INSTALLDIR
+
+
+dnl PKG_NOARCH_INSTALLDIR([DIRECTORY])
+dnl --------------------------------
+dnl Since: 0.27
+dnl
+dnl Substitutes the variable noarch_pkgconfigdir as the location where a
+dnl module should install arch-independent pkg-config .pc files. By
+dnl default the directory is $datadir/pkgconfig, but the default can be
+dnl changed by passing DIRECTORY. The user can override through the
+dnl --with-noarch-pkgconfigdir parameter.
+AC_DEFUN([PKG_NOARCH_INSTALLDIR],
+[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+    [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([noarch-pkgconfigdir],
+    [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],,
+    [with_noarch_pkgconfigdir=]pkg_default)
+AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+])dnl PKG_NOARCH_INSTALLDIR
+
+
+dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
+dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+dnl -------------------------------------------
+dnl Since: 0.28
+dnl
+dnl Retrieves the value of the pkg-config variable for the given module.
+AC_DEFUN([PKG_CHECK_VAR],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
+
+_PKG_CONFIG([$1], [variable="][$3]["], [$2])
+AS_VAR_COPY([$1], [pkg_cv_][$1])
+
+AS_VAR_IF([$1], [""], [$5], [$4])dnl
+])dnl PKG_CHECK_VAR
+dnl pkg.m4 - Macros to locate and utilise pkg-config.   -*- Autoconf -*-
+dnl serial 11 (pkg-config-0.29)
+dnl
+dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
+dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com>
+dnl
+dnl This program is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; either version 2 of the License, or
+dnl (at your option) any later version.
+dnl
+dnl This program is distributed in the hope that it will be useful, but
+dnl WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+dnl General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program; if not, write to the Free Software
+dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+dnl 02111-1307, USA.
+dnl
+dnl As a special exception to the GNU General Public License, if you
+dnl distribute this file as part of a program that contains a
+dnl configuration script generated by Autoconf, you may include it under
+dnl the same distribution terms that you use for the rest of that
+dnl program.
+
+dnl PKG_PREREQ(MIN-VERSION)
+dnl -----------------------
+dnl Since: 0.29
+dnl
+dnl Verify that the version of the pkg-config macros are at least
+dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's
+dnl installed version of pkg-config, this checks the developer's version
+dnl of pkg.m4 when generating configure.
+dnl
+dnl To ensure that this macro is defined, also add:
+dnl m4_ifndef([PKG_PREREQ],
+dnl     [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])])
+dnl
+dnl See the "Since" comment for each macro you use to see what version
+dnl of the macros you require.
+m4_defun([PKG_PREREQ],
+[m4_define([PKG_MACROS_VERSION], [0.29])
+m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
+    [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
+])dnl PKG_PREREQ
+
+dnl PKG_PROG_PKG_CONFIG([MIN-VERSION])
+dnl ----------------------------------
+dnl Since: 0.16
+dnl
+dnl Search for the pkg-config tool and set the PKG_CONFIG variable to
+dnl first found in the path. Checks that the version of pkg-config found
+dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is
+dnl used since that's the first version where most current features of
+dnl pkg-config existed.
+AC_DEFUN([PKG_PROG_PKG_CONFIG],
+[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
+m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
+AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
+AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+	AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
+fi
+if test -n "$PKG_CONFIG"; then
+	_pkg_min_version=m4_default([$1], [0.9.0])
+	AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
+	if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+		AC_MSG_RESULT([yes])
+	else
+		AC_MSG_RESULT([no])
+		PKG_CONFIG=""
+	fi
+fi[]dnl
+])dnl PKG_PROG_PKG_CONFIG
+
+dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+dnl -------------------------------------------------------------------
+dnl Since: 0.18
+dnl
+dnl Check to see whether a particular set of modules exists. Similar to
+dnl PKG_CHECK_MODULES(), but does not set variables or print errors.
+dnl
+dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+dnl only at the first occurence in configure.ac, so if the first place
+dnl it's called might be skipped (such as if it is within an "if", you
+dnl have to call PKG_CHECK_EXISTS manually
+AC_DEFUN([PKG_CHECK_EXISTS],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+if test -n "$PKG_CONFIG" && \
+    AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
+  m4_default([$2], [:])
+m4_ifvaln([$3], [else
+  $3])dnl
+fi])
+
+dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
+dnl ---------------------------------------------
+dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting
+dnl pkg_failed based on the result.
+m4_define([_PKG_CONFIG],
+[if test -n "$$1"; then
+    pkg_cv_[]$1="$$1"
+ elif test -n "$PKG_CONFIG"; then
+    PKG_CHECK_EXISTS([$3],
+                     [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes ],
+		     [pkg_failed=yes])
+ else
+    pkg_failed=untried
+fi[]dnl
+])dnl _PKG_CONFIG
+
+dnl _PKG_SHORT_ERRORS_SUPPORTED
+dnl ---------------------------
+dnl Internal check to see if pkg-config supports short errors.
+AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi[]dnl
+])dnl _PKG_SHORT_ERRORS_SUPPORTED
+
+
+dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+dnl   [ACTION-IF-NOT-FOUND])
+dnl --------------------------------------------------------------
+dnl Since: 0.4.0
+dnl
+dnl Note that if there is a possibility the first call to
+dnl PKG_CHECK_MODULES might not happen, you should be sure to include an
+dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
+AC_DEFUN([PKG_CHECK_MODULES],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
+AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
+
+pkg_failed=no
+AC_MSG_CHECKING([for $1])
+
+_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
+_PKG_CONFIG([$1][_LIBS], [libs], [$2])
+
+m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
+and $1[]_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.])
+
+if test $pkg_failed = yes; then
+   	AC_MSG_RESULT([no])
+        _PKG_SHORT_ERRORS_SUPPORTED
+        if test $_pkg_short_errors_supported = yes; then
+	        $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
+        else 
+	        $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
+
+	m4_default([$4], [AC_MSG_ERROR(
+[Package requirements ($2) were not met:
+
+$$1_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+_PKG_TEXT])[]dnl
+        ])
+elif test $pkg_failed = untried; then
+     	AC_MSG_RESULT([no])
+	m4_default([$4], [AC_MSG_FAILURE(
+[The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+_PKG_TEXT
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
+        ])
+else
+	$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
+	$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+        AC_MSG_RESULT([yes])
+	$3
+fi[]dnl
+])dnl PKG_CHECK_MODULES
+
+
+dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+dnl   [ACTION-IF-NOT-FOUND])
+dnl ---------------------------------------------------------------------
+dnl Since: 0.29
+dnl
+dnl Checks for existence of MODULES and gathers its build flags with
+dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags
+dnl and VARIABLE-PREFIX_LIBS from --libs.
+dnl
+dnl Note that if there is a possibility the first call to
+dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to
+dnl include an explicit call to PKG_PROG_PKG_CONFIG in your
+dnl configure.ac.
+AC_DEFUN([PKG_CHECK_MODULES_STATIC],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+_save_PKG_CONFIG=$PKG_CONFIG
+PKG_CONFIG="$PKG_CONFIG --static"
+PKG_CHECK_MODULES($@)
+PKG_CONFIG=$_save_PKG_CONFIG[]dnl
+])dnl PKG_CHECK_MODULES_STATIC
+
+
+dnl PKG_INSTALLDIR([DIRECTORY])
+dnl -------------------------
+dnl Since: 0.27
+dnl
+dnl Substitutes the variable pkgconfigdir as the location where a module
+dnl should install pkg-config .pc files. By default the directory is
+dnl $libdir/pkgconfig, but the default can be changed by passing
+dnl DIRECTORY. The user can override through the --with-pkgconfigdir
+dnl parameter.
+AC_DEFUN([PKG_INSTALLDIR],
+[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+    [pkg-config installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([pkgconfigdir],
+    [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],,
+    [with_pkgconfigdir=]pkg_default)
+AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+])dnl PKG_INSTALLDIR
+
+
+dnl PKG_NOARCH_INSTALLDIR([DIRECTORY])
+dnl --------------------------------
+dnl Since: 0.27
+dnl
+dnl Substitutes the variable noarch_pkgconfigdir as the location where a
+dnl module should install arch-independent pkg-config .pc files. By
+dnl default the directory is $datadir/pkgconfig, but the default can be
+dnl changed by passing DIRECTORY. The user can override through the
+dnl --with-noarch-pkgconfigdir parameter.
+AC_DEFUN([PKG_NOARCH_INSTALLDIR],
+[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+    [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([noarch-pkgconfigdir],
+    [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],,
+    [with_noarch_pkgconfigdir=]pkg_default)
+AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+])dnl PKG_NOARCH_INSTALLDIR
+
+
+dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
+dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+dnl -------------------------------------------
+dnl Since: 0.28
+dnl
+dnl Retrieves the value of the pkg-config variable for the given module.
+AC_DEFUN([PKG_CHECK_VAR],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
+
+_PKG_CONFIG([$1], [variable="][$3]["], [$2])
+AS_VAR_COPY([$1], [pkg_cv_][$1])
+
+AS_VAR_IF([$1], [""], [$5], [$4])dnl
+])dnl PKG_CHECK_VAR
+dnl pkg.m4 - Macros to locate and utilise pkg-config.   -*- Autoconf -*-
+dnl serial 11 (pkg-config-0.29)
+dnl
+dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
+dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com>
+dnl
+dnl This program is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; either version 2 of the License, or
+dnl (at your option) any later version.
+dnl
+dnl This program is distributed in the hope that it will be useful, but
+dnl WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+dnl General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program; if not, write to the Free Software
+dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+dnl 02111-1307, USA.
+dnl
+dnl As a special exception to the GNU General Public License, if you
+dnl distribute this file as part of a program that contains a
+dnl configuration script generated by Autoconf, you may include it under
+dnl the same distribution terms that you use for the rest of that
+dnl program.
+
+dnl PKG_PREREQ(MIN-VERSION)
+dnl -----------------------
+dnl Since: 0.29
+dnl
+dnl Verify that the version of the pkg-config macros are at least
+dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's
+dnl installed version of pkg-config, this checks the developer's version
+dnl of pkg.m4 when generating configure.
+dnl
+dnl To ensure that this macro is defined, also add:
+dnl m4_ifndef([PKG_PREREQ],
+dnl     [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])])
+dnl
+dnl See the "Since" comment for each macro you use to see what version
+dnl of the macros you require.
+m4_defun([PKG_PREREQ],
+[m4_define([PKG_MACROS_VERSION], [0.29])
+m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
+    [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
+])dnl PKG_PREREQ
+
+dnl PKG_PROG_PKG_CONFIG([MIN-VERSION])
+dnl ----------------------------------
+dnl Since: 0.16
+dnl
+dnl Search for the pkg-config tool and set the PKG_CONFIG variable to
+dnl first found in the path. Checks that the version of pkg-config found
+dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is
+dnl used since that's the first version where most current features of
+dnl pkg-config existed.
+AC_DEFUN([PKG_PROG_PKG_CONFIG],
+[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
+m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
+AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
+AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+	AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
+fi
+if test -n "$PKG_CONFIG"; then
+	_pkg_min_version=m4_default([$1], [0.9.0])
+	AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
+	if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+		AC_MSG_RESULT([yes])
+	else
+		AC_MSG_RESULT([no])
+		PKG_CONFIG=""
+	fi
+fi[]dnl
+])dnl PKG_PROG_PKG_CONFIG
+
+dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+dnl -------------------------------------------------------------------
+dnl Since: 0.18
+dnl
+dnl Check to see whether a particular set of modules exists. Similar to
+dnl PKG_CHECK_MODULES(), but does not set variables or print errors.
+dnl
+dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+dnl only at the first occurence in configure.ac, so if the first place
+dnl it's called might be skipped (such as if it is within an "if", you
+dnl have to call PKG_CHECK_EXISTS manually
+AC_DEFUN([PKG_CHECK_EXISTS],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+if test -n "$PKG_CONFIG" && \
+    AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
+  m4_default([$2], [:])
+m4_ifvaln([$3], [else
+  $3])dnl
+fi])
+
+dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
+dnl ---------------------------------------------
+dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting
+dnl pkg_failed based on the result.
+m4_define([_PKG_CONFIG],
+[if test -n "$$1"; then
+    pkg_cv_[]$1="$$1"
+ elif test -n "$PKG_CONFIG"; then
+    PKG_CHECK_EXISTS([$3],
+                     [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes ],
+		     [pkg_failed=yes])
+ else
+    pkg_failed=untried
+fi[]dnl
+])dnl _PKG_CONFIG
+
+dnl _PKG_SHORT_ERRORS_SUPPORTED
+dnl ---------------------------
+dnl Internal check to see if pkg-config supports short errors.
+AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi[]dnl
+])dnl _PKG_SHORT_ERRORS_SUPPORTED
+
+
+dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+dnl   [ACTION-IF-NOT-FOUND])
+dnl --------------------------------------------------------------
+dnl Since: 0.4.0
+dnl
+dnl Note that if there is a possibility the first call to
+dnl PKG_CHECK_MODULES might not happen, you should be sure to include an
+dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
+AC_DEFUN([PKG_CHECK_MODULES],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
+AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
+
+pkg_failed=no
+AC_MSG_CHECKING([for $1])
+
+_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
+_PKG_CONFIG([$1][_LIBS], [libs], [$2])
+
+m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
+and $1[]_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.])
+
+if test $pkg_failed = yes; then
+   	AC_MSG_RESULT([no])
+        _PKG_SHORT_ERRORS_SUPPORTED
+        if test $_pkg_short_errors_supported = yes; then
+	        $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
+        else 
+	        $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
+
+	m4_default([$4], [AC_MSG_ERROR(
+[Package requirements ($2) were not met:
+
+$$1_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+_PKG_TEXT])[]dnl
+        ])
+elif test $pkg_failed = untried; then
+     	AC_MSG_RESULT([no])
+	m4_default([$4], [AC_MSG_FAILURE(
+[The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+_PKG_TEXT
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
+        ])
+else
+	$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
+	$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+        AC_MSG_RESULT([yes])
+	$3
+fi[]dnl
+])dnl PKG_CHECK_MODULES
+
+
+dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+dnl   [ACTION-IF-NOT-FOUND])
+dnl ---------------------------------------------------------------------
+dnl Since: 0.29
+dnl
+dnl Checks for existence of MODULES and gathers its build flags with
+dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags
+dnl and VARIABLE-PREFIX_LIBS from --libs.
+dnl
+dnl Note that if there is a possibility the first call to
+dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to
+dnl include an explicit call to PKG_PROG_PKG_CONFIG in your
+dnl configure.ac.
+AC_DEFUN([PKG_CHECK_MODULES_STATIC],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+_save_PKG_CONFIG=$PKG_CONFIG
+PKG_CONFIG="$PKG_CONFIG --static"
+PKG_CHECK_MODULES($@)
+PKG_CONFIG=$_save_PKG_CONFIG[]dnl
+])dnl PKG_CHECK_MODULES_STATIC
+
+
+dnl PKG_INSTALLDIR([DIRECTORY])
+dnl -------------------------
+dnl Since: 0.27
+dnl
+dnl Substitutes the variable pkgconfigdir as the location where a module
+dnl should install pkg-config .pc files. By default the directory is
+dnl $libdir/pkgconfig, but the default can be changed by passing
+dnl DIRECTORY. The user can override through the --with-pkgconfigdir
+dnl parameter.
+AC_DEFUN([PKG_INSTALLDIR],
+[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+    [pkg-config installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([pkgconfigdir],
+    [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],,
+    [with_pkgconfigdir=]pkg_default)
+AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+])dnl PKG_INSTALLDIR
+
+
+dnl PKG_NOARCH_INSTALLDIR([DIRECTORY])
+dnl --------------------------------
+dnl Since: 0.27
+dnl
+dnl Substitutes the variable noarch_pkgconfigdir as the location where a
+dnl module should install arch-independent pkg-config .pc files. By
+dnl default the directory is $datadir/pkgconfig, but the default can be
+dnl changed by passing DIRECTORY. The user can override through the
+dnl --with-noarch-pkgconfigdir parameter.
+AC_DEFUN([PKG_NOARCH_INSTALLDIR],
+[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+    [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([noarch-pkgconfigdir],
+    [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],,
+    [with_noarch_pkgconfigdir=]pkg_default)
+AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+])dnl PKG_NOARCH_INSTALLDIR
+
+
+dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
+dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+dnl -------------------------------------------
+dnl Since: 0.28
+dnl
+dnl Retrieves the value of the pkg-config variable for the given module.
+AC_DEFUN([PKG_CHECK_VAR],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
+
+_PKG_CONFIG([$1], [variable="][$3]["], [$2])
+AS_VAR_COPY([$1], [pkg_cv_][$1])
+
+AS_VAR_IF([$1], [""], [$5], [$4])dnl
+])dnl PKG_CHECK_VAR
Index: configure.ac
===================================================================
--- configure.ac	(revision 242681)
+++ configure.ac	(working copy)
@@ -29,6 +29,7 @@
 m4_include([ltversion.m4])
 m4_include([lt~obsolete.m4])
 m4_include([config/isl.m4])
+m4_include([config/pkg.m4])
 
 AC_INIT(move-if-change)
 AC_PREREQ(2.64)
@@ -161,7 +162,6 @@
 		target-libssp \
 		target-libquadmath \
 		target-libgfortran \
-		target-boehm-gc \
 		target-libffi \
 		target-libobjc \
 		target-libada \
@@ -2060,22 +2060,36 @@
 AC_ARG_ENABLE(objc-gc,
 [AS_HELP_STRING([--enable-objc-gc],
 		[enable use of Boehm's garbage collector with the
-		 GNU Objective-C runtime])],
-[case ,${enable_languages},:${enable_objc_gc}:${noconfigdirs} in
-  *,objc,*:*:yes:*target-boehm-gc*)
-    AC_MSG_ERROR([Boehm's garbage collector was requested yet not supported in this configuration])
-    ;;
-esac])
-
-# Make sure we only build Boehm's garbage collector if required.
-case ,${enable_languages},:${enable_objc_gc} in
-  *,objc,*:yes)
-    # Keep target-boehm-gc if requested for Objective-C.
-    ;;
-  *)
-    # Otherwise remove target-boehm-gc.
-    noconfigdirs="$noconfigdirs target-boehm-gc"
-    ;;
+		 GNU Objective-C runtime])])
+AC_ARG_WITH([target-bdw-gc],
+[AS_HELP_STRING([--with-target-bdw-gc=PATHLIST],
+		[specify prefix directory for installed bdw-gc package.
+		 Equivalent to --with-target-bdw-gc-include=PATH/include
+		 plus --with-target-bdw-gc-lib=PATH/lib])])
+AC_ARG_WITH([target-bdw-gc-include],
+[AS_HELP_STRING([--with-target-bdw-gc-include=PATHLIST],
+		[specify directories for installed bdw-gc include files])])
+AC_ARG_WITH([target-bdw-gc-lib],
+[AS_HELP_STRING([--with-target-bdw-gc-lib=PATHLIST],
+		[specify directories for installed bdw-gc library])])
+		  
+case ,${enable_languages},:${enable_objc_gc} in *,objc,*:yes|*,objc,*:auto)
+  AC_MSG_CHECKING([for bdw garbage collector])
+  if test "x$with_target_bdw_gc$with_target_bdw_gc_include$with_target_bdw_gc_lib" = x; then
+    dnl no bdw-gw options, fall back to the bdw-gc pkg-config module
+    PKG_CHECK_EXISTS(bdw-gc,
+      AC_MSG_RESULT([using bdw-gc pkg-config module]),
+      AC_MSG_ERROR([no --with-target-bdw-gc options and no bdw-gc pkg-config module found]))
+  else
+    dnl bdw-gw options, first error checking, complete checking in libobjc
+    if test "x$with_target_bdw_gc_include" = x && test "x$with_target_bdw_gc_lib" != x; then
+      AC_MSG_ERROR([found --with-target-bdw-gc-lib but --with-target-bdw-gc-include missing])
+    elif test "x$with_target_bdw_gc_include" != x && test "x$with_target_bdw_gc_lib" = x; then
+      AC_MSG_ERROR([found --with-target-bdw-gc-include but --with-target-bdw-gc-lib missing])
+    else
+      AC_MSG_RESULT([using paths configured with --with-target-bdw-gc options])
+    fi
+  fi
 esac
 
 # Disable libcilkrts, libitm, libsanitizer, libvtv, liboffloadmic if we're not building C++
Index: gcc/doc/install.texi
===================================================================
--- gcc/doc/install.texi	(revision 242681)
+++ gcc/doc/install.texi	(working copy)
@@ -2143,6 +2143,37 @@
 overrides, you can pass a setting for @env{CONFIG_SITE} and set
 variables in the site file.
 
+@subheading Objective-C-Specific Options
+
+The following options apply to the build of the Objective-C runtime library.
+
+@table @code
+@item --enable-objc-gc
+Specify that an additional variant of the GNU Objective-C runtime library
+is built, using an external build of the Boehm-Demers-Weiser garbage
+collector (@uref{http://www.hboehm.info/gc/}).  This library needs to be
+available for each multilib variant, unless configured with
+@option{--enable-objc-gc=@samp{auto}} in which case the build of the
+additional runtime library is skipped when not available and the build
+continues.
+
+@item --with-target-bdw-gc=@var{list}
+@itemx --with-target-bdw-gc-include=@var{list}
+@itemx --with-target-bdw-gc-lib=@var{list}
+Specify search directories for the garbage collector header files and
+libraries. @var{list} is a comma separated list of key value pairs of the
+form @samp{@var{multilibdir}@=@var{path}}, where the default multilib key
+is named as @samp{.} (dot), or is omitted (e.g.
+@samp{--with-target-bdw-gc=/opt/bdw-gc,32=/opt-bdw-gc32}).
+
+The options @option{--with-target-bdw-gc-include} and
+@option{--with-target-bdw-gc-lib} must always be specified together
+for each multilib variant and they take precedence over
+@option{--with-target-bdw-gc}.  If none of these options are
+specified, the values are taken from the @command{pkg-config}
+@samp{bdw-gc} module.
+@end table
+
 @html
 <hr />
 <p>
Index: libobjc/Makefile.in
===================================================================
--- libobjc/Makefile.in	(revision 242681)
+++ libobjc/Makefile.in	(working copy)
@@ -47,8 +47,6 @@
 
 top_builddir = .
 
--include ../boehm-gc/threads.mk
-
 libdir = $(exec_prefix)/lib
 libsubdir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)
 
@@ -95,7 +93,7 @@
 OBJC_GCFLAGS=@OBJC_GCFLAGS@
 OBJC_BOEHM_GC=@OBJC_BOEHM_GC@
 OBJC_BOEHM_GC_INCLUDES=@OBJC_BOEHM_GC_INCLUDES@
-OBJC_BOEHM_GC_LIBS=../boehm-gc/libgcjgc_convenience.la $(thread_libs_and_flags)
+OBJC_BOEHM_GC_LIBS=@OBJC_BOEHM_GC_LIBS@
 
 INCLUDES = -I$(srcdir)/$(MULTISRCTOP)../gcc \
   -I$(srcdir)/$(MULTISRCTOP)../gcc/config \
Index: libobjc/configure.ac
===================================================================
--- libobjc/configure.ac	(revision 242681)
+++ libobjc/configure.ac	(working copy)
@@ -18,6 +18,8 @@
 #along with GCC; see the file COPYING3.  If not see
 #<http://www.gnu.org/licenses/>.
 
+m4_include([../config/pkg.m4])
+
 AC_PREREQ(2.64)
 AC_INIT(package-unused, version-unused,, libobjc)
 AC_CONFIG_SRCDIR([objc/objc.h])
@@ -57,26 +59,6 @@
 [version_specific_libs=no])
 AC_MSG_RESULT($version_specific_libs)
 
-AC_ARG_ENABLE(objc-gc,
-[  --enable-objc-gc       enable the use of Boehm's garbage collector with
-                          the GNU Objective-C runtime.],
-[case $enable_objc_gc in
-  no)
-    OBJC_GCFLAGS=''
-    OBJC_BOEHM_GC=''
-    OBJC_BOEHM_GC_INCLUDES=''
-    ;;
-  *)
-    OBJC_GCFLAGS='-DOBJC_WITH_GC=1'
-    OBJC_BOEHM_GC='libobjc_gc$(libsuffix).la'
-    OBJC_BOEHM_GC_INCLUDES='-I$(top_srcdir)/../boehm-gc/include -I../boehm-gc/include'
-    ;;
-esac],
-[OBJC_GCFLAGS=''; OBJC_BOEHM_GC=''; OBJC_BOEHM_GC_INCLUDES=''])
-AC_SUBST(OBJC_GCFLAGS)
-AC_SUBST(OBJC_BOEHM_GC)
-AC_SUBST(OBJC_BOEHM_GC_INCLUDES)
-
 # -----------
 # Directories
 # -----------
@@ -214,6 +196,163 @@
 
 gt_BITFIELD_TYPE_MATTERS
 
+# -----------
+# boehm-gc
+# -----------
+
+AC_ARG_ENABLE(objc-gc,
+[AS_HELP_STRING([--enable-objc-gc],
+		[enable use of Boehm's garbage collector with the
+		 GNU Objective-C runtime])])
+AC_ARG_WITH([target-bdw-gc],
+[AS_HELP_STRING([--with-target-bdw-gc=PATHLIST],
+		[specify prefix directory for installed bdw-gc package.
+		 Equivalent to --with-target-bdw-gc-include=PATH/include
+		 plus --with-target-bdw-gc-lib=PATH/lib])])
+AC_ARG_WITH([target-bdw-gc-include],
+[AS_HELP_STRING([--with-target-bdw-gc-include=PATHLIST],
+		[specify directories for installed bdw-gc include files])])
+AC_ARG_WITH([target-bdw-gc-lib],
+[AS_HELP_STRING([--with-target-bdw-gc-lib=PATHLIST],
+		[specify directories for installed bdw-gc library])])
+		  
+case "$enable_objc_gc" in
+no)
+  use_bdw_gc=no
+  ;;
+*)
+  AC_MSG_CHECKING([for bdw garbage collector])
+  if test "x$with_target_bdw_gc$with_target_bdw_gc_include$with_target_bdw_gc_lib" = x; then
+    dnl no bdw-gw options, fall back to the bdw-gc pkg-config module
+    PKG_CHECK_EXISTS(bdw-gc,
+      AC_MSG_RESULT([using bdw-gc pkg-config module]),
+      AC_MSG_ERROR([no --with-target-bdw-gc options and no bdw-gc pkg-config module found]))
+  else
+    dnl bdw-gw options, first error checking, complete checking in libobjc
+    if test "x$with_target_bdw_gc_include" = x && test "x$with_target_bdw_gc_lib" != x; then
+      AC_MSG_ERROR([found --with-target-bdw-gc-lib but --with-target-bdw-gc-include missing])
+    elif test "x$with_target_bdw_gc_include" != x && test "x$with_target_bdw_gc_lib" = x; then
+      AC_MSG_ERROR([found --with-target-bdw-gc-include but --with-target-bdw-gc-lib missing])
+    else
+      AC_MSG_RESULT([using paths configured with --with-target-bdw-gc options])
+    fi
+  fi
+  mldir=`${CC-gcc} --print-multi-directory 2>/dev/null`
+  bdw_val=
+  if test "x$with_target_bdw_gc" != x; then
+    for i in `echo $with_target_bdw_gc | tr ',' ' '`; do
+      case "$i" in
+        *=*) sd=${i%%=*}; d=${i#*=} ;;
+        *) sd=.; d=$i ;;
+      esac
+      if test "$mldir" = "$sd"; then
+        bdw_val=$d
+      fi
+    done
+    if test "x$bdw_val" = x; then
+      AC_MSG_ERROR([no multilib path ($mldir) found in --with-target-bdw-gc])
+    fi
+    bdw_inc_dir="$bdw_val/include"
+    bdw_lib_dir="$bdw_val/lib"
+  fi
+  bdw_val=
+  if test "x$with_target_bdw_gc_include" != x; then
+    for i in `echo $with_target_bdw_gc_include | tr ',' ' '`; do
+      case "$i" in
+        *=*) sd=${i%%=*}; d=${i#*=} ;;
+        *) sd=.; d=$i ;;
+      esac
+      if test "$mldir" = "$sd"; then
+        bdw_val=$d
+      fi
+    done
+    if test "x$bdw_val" = x; then
+      AC_MSG_ERROR([no multilib path ($mldir) found in --with-target-bdw-gc-include])
+    fi
+    bdw_inc_dir="$bdw_val"
+  fi
+  bdw_val=
+  if test "x$with_target_bdw_gc_lib" != x; then
+    for i in `echo $with_target_bdw_gc_lib | tr ',' ' '`; do
+      case "$i" in
+        *=*) sd=${i%%=*}; d=${i#*=} ;;
+        *) sd=.; d=$i ;;
+      esac
+      if test "$mldir" = "$sd"; then
+        bdw_val=$d
+      fi
+    done
+    if test "x$bdw_val" = x; then
+      AC_MSG_ERROR([no multilib path ($mldir) found in --with-target-bdw-gc-lib])
+    fi
+    bdw_lib_dir="$bdw_val"
+  fi
+  if test "x$bdw_inc_dir" = x; then
+    AC_MSG_ERROR([no multilib path ($mldir) found in --with-target-bdw-gc-include])
+  fi
+  if test "x$bdw_lib_dir" = x; then
+    AC_MSG_ERROR([no multilib path ($mldir) found in --with-target-bdw-gc-lib])
+  fi
+  BDW_GC_CFLAGS="-I$bdw_inc_dir"
+  BDW_GC_LIBS="-L$bdw_lib_dir -lgc"
+  AC_MSG_RESULT([found])
+  use_bdw_gc=maybe
+esac
+
+if test "$use_bdw_gc" = maybe; then
+  AC_MSG_CHECKING([for system boehm-gc])
+  save_CFLAGS=$CFLAGS
+  save_LIBS=$LIBS
+  CFLAGS="$CFLAGS $BDW_GC_CFLAGS"
+  LIBS="$LIBS $BDW_GC_LIBS"
+  dnl the link test is not good enough for ARM32 multilib detection,
+  dnl first check to link, then to run
+  AC_LINK_IFELSE(
+    [AC_LANG_PROGRAM([#include <gc/gc.h>],[GC_init()])],
+    [
+      AC_RUN_IFELSE([AC_LANG_SOURCE([[
+        #include <gc/gc.h>
+        int main() {
+          GC_init();
+          return 0;
+        }
+        ]])],
+        [system_bdw_gc_found=yes],
+        [system_bdw_gc_found=no],
+        dnl assume no system boehm-gc for cross builds ...
+        [system_bdw_gc_found=no]
+      )
+    ],
+    [system_bdw_gc_found=no])
+  CFLAGS=$save_CFLAGS
+  LIBS=$save_LIBS
+  if test x$enable_objc_gc = xauto && test x$system_bdw_gc_found = xno; then
+    AC_MSG_WARN([system bdw-gc not found, not building libobjc_gc])
+    use_bdw_gc=no
+  elif test x$enable_objc_gc = xyes && test x$system_bdw_gc_found = xno; then
+    AC_MSG_ERROR([system bdw-gc required but not found])
+  else
+    use_bdw_gc=yes
+    AC_MSG_RESULT([found])
+  fi
+fi
+
+if test "$use_bdw_gc" = no; then
+  OBJC_GCFLAGS=''
+  OBJC_BOEHM_GC=''
+  OBJC_BOEHM_GC_INCLUDES=''
+  OBJC_BOEHM_GC_LIBS=''
+else
+  OBJC_GCFLAGS='-DOBJC_WITH_GC=1'
+  OBJC_BOEHM_GC='libobjc_gc$(libsuffix).la'
+  OBJC_BOEHM_GC_INCLUDES=$BDW_GC_CFLAGS
+  OBJC_BOEHM_GC_LIBS=$BDW_GC_LIBS
+fi
+AC_SUBST(OBJC_GCFLAGS)
+AC_SUBST(OBJC_BOEHM_GC)
+AC_SUBST(OBJC_BOEHM_GC_INCLUDES)
+AC_SUBST(OBJC_BOEHM_GC_LIBS)
+
 # ------
 # Output
 # ------
Index: libobjc/gc.c
===================================================================
--- libobjc/gc.c	(revision 242681)
+++ libobjc/gc.c	(working copy)
@@ -36,7 +36,7 @@
 #include "objc/runtime.h"
 #include "objc-private/module-abi-8.h"
 
-#include <gc.h>
+#include <gc/gc.h>
 #include <limits.h>
 
 /* gc_typed.h uses the following but doesn't declare them */
@@ -44,7 +44,7 @@
 typedef GC_signed_word signed_word;
 #define BITS_PER_WORD (CHAR_BIT * sizeof (word))
 
-#include <gc_typed.h>
+#include <gc/gc_typed.h>
 
 /* The following functions set up in `mask` the corresponding pointers.
    The offset is incremented with the size of the type.  */
Index: libobjc/memory.c
===================================================================
--- libobjc/memory.c	(revision 242681)
+++ libobjc/memory.c	(working copy)
@@ -41,7 +41,7 @@
 #include "objc/runtime.h"
 
 #if OBJC_WITH_GC
-#include <gc.h>
+#include <gc/gc.h>
 
 void *
 objc_malloc (size_t size)
Index: libobjc/objects.c
===================================================================
--- libobjc/objects.c	(revision 242681)
+++ libobjc/objects.c	(working copy)
@@ -31,8 +31,8 @@
 #include <string.h>                     /* For memcpy()  */
 
 #if OBJC_WITH_GC
-# include <gc.h>
-# include <gc_typed.h>
+# include <gc/gc.h>
+# include <gc/gc_typed.h>
 #endif
 
 /* FIXME: The semantics of extraBytes are not really clear.  */

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-11-21 16:40                                           ` Matthias Klose
@ 2016-11-21 17:16                                             ` Peter Bergner
  2016-11-21 17:16                                             ` Rainer Orth
  1 sibling, 0 replies; 60+ messages in thread
From: Peter Bergner @ 2016-11-21 17:16 UTC (permalink / raw)
  To: Matthias Klose, Sandra Loosemore, Iain Sandoe
  Cc: Mike Stump, Rainer Orth, Jeff Law, Andrew Haley, GCC Patches,
	GCJ-patches

On 11/21/16 10:40 AM, Matthias Klose wrote:
> On 21.11.2016 17:23, Sandra Loosemore wrote:
>> On 11/21/2016 05:57 AM, Matthias Klose wrote:
>> I'm sure you didn't mean exactly the same --with-foo in all 3 places, but I'm a
>> dummy about what you really intended to say here.
>
> ahh, didn't see that :-/ Now fixed, is this clearer now?
>
> The options @option{--with-target-bdw-gc-include} and
> @option{--with-target-bdw-gc-lib} must always specified together for
> each multilib variant and take precedence over
> @option{--with-target-bdw-gc}.  If none of these options are
> specified, the values are taken from the @command{pkg-config}
> @samp{bdw-gc} module.

s/must always specified/must always be specified/

and possibly:

s/variant and take precedence/variant and they take precedence/ ???


Peter

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-11-21 16:40                                           ` Matthias Klose
  2016-11-21 17:16                                             ` Peter Bergner
@ 2016-11-21 17:16                                             ` Rainer Orth
  2016-11-21 23:23                                               ` Matthias Klose
  1 sibling, 1 reply; 60+ messages in thread
From: Rainer Orth @ 2016-11-21 17:16 UTC (permalink / raw)
  To: Matthias Klose
  Cc: Sandra Loosemore, Iain Sandoe, Mike Stump, Jeff Law,
	Andrew Haley, GCC Patches, GCJ-patches

Hi Matthias,

> ahh, didn't see that :-/ Now fixed, is this clearer now?
>
> The options @option{--with-target-bdw-gc-include} and
> @option{--with-target-bdw-gc-lib} must always specified together for
                                               ^ be 
	Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-11-21 16:23                                         ` Sandra Loosemore
@ 2016-11-21 16:40                                           ` Matthias Klose
  2016-11-21 17:16                                             ` Peter Bergner
  2016-11-21 17:16                                             ` Rainer Orth
  0 siblings, 2 replies; 60+ messages in thread
From: Matthias Klose @ 2016-11-21 16:40 UTC (permalink / raw)
  To: Sandra Loosemore, Iain Sandoe
  Cc: Mike Stump, Rainer Orth, Jeff Law, Andrew Haley, GCC Patches,
	GCJ-patches

On 21.11.2016 17:23, Sandra Loosemore wrote:
> On 11/21/2016 05:57 AM, Matthias Klose wrote:
>>
>> --with-target-bdw-gc=/opt/bdw-gc,32=/opt/bdw-gc32
>>
>> sets the include and lib dirs by appending include and lib to the paths. If you
>> have options --with-target-bdw-gc-include= and --with-target-bdw-gc-lib= as
>> well, it overrides the settings done in --with-target-bdw-gc=. This is copied
>> from the setting of the gmp/mpfr options.
>>
>> Any of these options override the automatic discovery using pkg-config.
>>
>> Please suggest a better wording; I thought that was clear enough (and better
>> than the undocumented --enable-libobjc-gc anyway ;)
> 
> FAOD, my complaint about your patch is that it essentially said
> 
> "The options --with-foo and --with-foo must also be specified together and
> override --with-foo."
> 
> I'm sure you didn't mean exactly the same --with-foo in all 3 places, but I'm a
> dummy about what you really intended to say here.

ahh, didn't see that :-/ Now fixed, is this clearer now?

The options @option{--with-target-bdw-gc-include} and
@option{--with-target-bdw-gc-lib} must always specified together for
each multilib variant and take precedence over
@option{--with-target-bdw-gc}.  If none of these options are
specified, the values are taken from the @command{pkg-config}
@samp{bdw-gc} module.

Matthias

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-11-21 12:57                                       ` Matthias Klose
@ 2016-11-21 16:23                                         ` Sandra Loosemore
  2016-11-21 16:40                                           ` Matthias Klose
  0 siblings, 1 reply; 60+ messages in thread
From: Sandra Loosemore @ 2016-11-21 16:23 UTC (permalink / raw)
  To: Matthias Klose, Iain Sandoe
  Cc: Mike Stump, Rainer Orth, Jeff Law, Andrew Haley, GCC Patches,
	GCJ-patches

On 11/21/2016 05:57 AM, Matthias Klose wrote:
>
> --with-target-bdw-gc=/opt/bdw-gc,32=/opt/bdw-gc32
>
> sets the include and lib dirs by appending include and lib to the paths. If you
> have options --with-target-bdw-gc-include= and --with-target-bdw-gc-lib= as
> well, it overrides the settings done in --with-target-bdw-gc=. This is copied
> from the setting of the gmp/mpfr options.
>
> Any of these options override the automatic discovery using pkg-config.
>
> Please suggest a better wording; I thought that was clear enough (and better
> than the undocumented --enable-libobjc-gc anyway ;)

FAOD, my complaint about your patch is that it essentially said

"The options --with-foo and --with-foo must also be specified together 
and override --with-foo."

I'm sure you didn't mean exactly the same --with-foo in all 3 places, 
but I'm a dummy about what you really intended to say here.

-Sandra


^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-11-21 10:24                                     ` Iain Sandoe
@ 2016-11-21 12:57                                       ` Matthias Klose
  2016-11-21 16:23                                         ` Sandra Loosemore
  0 siblings, 1 reply; 60+ messages in thread
From: Matthias Klose @ 2016-11-21 12:57 UTC (permalink / raw)
  To: Iain Sandoe
  Cc: Mike Stump, Rainer Orth, Jeff Law, Andrew Haley, GCC Patches,
	GCJ-patches, Sandra Loosemore

On 21.11.2016 11:23, Iain Sandoe wrote:
> 
>> On 20 Nov 2016, at 20:42, Matthias Klose <doko@ubuntu.com> wrote:
>>
>> On 10.10.2016 09:58, Iain Sandoe wrote:
>>>
> 
>>> The point here was to simplify the dependent configury so that it only needs to test something that the configuring user specifies (i.e. if they specify objc-gc, then they need also to specify the place that the gc lib can be found).
>>
>> So here is the next proposal, I hope the added documentation in install.texi
>> makes the usage clear.
> 
> thanks for working on this!
> 
>>
>> <toplevel>
>>
>> 2016-11-19  Matthias Klose  <doko@ubuntu.com>
>>
>> 	* Makefile.def: Remove reference to boehm-gc target module.
>>  	* configure.ac: Include pkg.m4, check for --with-target-bdw-gc
>> 	options and for the bdw-gc pkg-config module.
>> 	* configure: Regenerate.
>> 	* Makefile.in: Regenerate.
> 
> 
> +AC_ARG_ENABLE(objc-gc,
> +[AS_HELP_STRING([--enable-objc-gc],
> +		[enable use of Boehm's garbage collector with the
> +		 GNU Objective-C runtime])])
> +AC_ARG_WITH([target-bdw-gc],
> +[AS_HELP_STRING([--with-target-bdw-gc=PATHLIST],
> +		[specify prefix directory for installed bdw-gc package.
> +		 Equivalent to --with-bdw-gc-include=PATH/include
> +		 plus --with-bdw-gc-lib=PATH/lib])])
> 
> missing “target” in the --with-bdw-gc-*

thanks, fixed.

>> gcc/
>>
>> 2016-11-19  Matthias Klose  <doko@ubuntu.com>
>>
>> 	* doc/install.texi: Document configure options --enable-objc-gc
>> 	and --with-target-bdw-gc.
> 
> As per Sandra’s comment,  should we understand the priority of options is
> 
> --with-target-bdw-gc-*
> 
> which overrides…
> 
> --with-target-bdw-gc=<list>
> 
> which overrides automatic discovery using pkg_config?

--with-target-bdw-gc=/opt/bdw-gc,32=/opt/bdw-gc32

sets the include and lib dirs by appending include and lib to the paths. If you
have options --with-target-bdw-gc-include= and --with-target-bdw-gc-lib= as
well, it overrides the settings done in --with-target-bdw-gc=. This is copied
from the setting of the gmp/mpfr options.

Any of these options override the automatic discovery using pkg-config.

Please suggest a better wording; I thought that was clear enough (and better
than the undocumented --enable-libobjc-gc anyway ;)

Matthias

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-11-20 20:42                                   ` Matthias Klose
  2016-11-21  5:34                                     ` Sandra Loosemore
@ 2016-11-21 10:24                                     ` Iain Sandoe
  2016-11-21 12:57                                       ` Matthias Klose
  1 sibling, 1 reply; 60+ messages in thread
From: Iain Sandoe @ 2016-11-21 10:24 UTC (permalink / raw)
  To: Matthias Klose
  Cc: Mike Stump, Rainer Orth, Jeff Law, Andrew Haley, GCC Patches,
	GCJ-patches, Sandra Loosemore


> On 20 Nov 2016, at 20:42, Matthias Klose <doko@ubuntu.com> wrote:
> 
> On 10.10.2016 09:58, Iain Sandoe wrote:
>> 

>> The point here was to simplify the dependent configury so that it only needs to test something that the configuring user specifies (i.e. if they specify objc-gc, then they need also to specify the place that the gc lib can be found).
> 
> So here is the next proposal, I hope the added documentation in install.texi
> makes the usage clear.

thanks for working on this!

> 
> <toplevel>
> 
> 2016-11-19  Matthias Klose  <doko@ubuntu.com>
> 
> 	* Makefile.def: Remove reference to boehm-gc target module.
>  	* configure.ac: Include pkg.m4, check for --with-target-bdw-gc
> 	options and for the bdw-gc pkg-config module.
> 	* configure: Regenerate.
> 	* Makefile.in: Regenerate.


+AC_ARG_ENABLE(objc-gc,
+[AS_HELP_STRING([--enable-objc-gc],
+		[enable use of Boehm's garbage collector with the
+		 GNU Objective-C runtime])])
+AC_ARG_WITH([target-bdw-gc],
+[AS_HELP_STRING([--with-target-bdw-gc=PATHLIST],
+		[specify prefix directory for installed bdw-gc package.
+		 Equivalent to --with-bdw-gc-include=PATH/include
+		 plus --with-bdw-gc-lib=PATH/lib])])

missing “target” in the --with-bdw-gc-*

> 
> gcc/
> 
> 2016-11-19  Matthias Klose  <doko@ubuntu.com>
> 
> 	* doc/install.texi: Document configure options --enable-objc-gc
> 	and --with-target-bdw-gc.

As per Sandra’s comment,  should we understand the priority of options is

--with-target-bdw-gc-*

which overrides…

--with-target-bdw-gc=<list>

which overrides automatic discovery using pkg_config?

Iain



^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-11-20 20:42                                   ` Matthias Klose
@ 2016-11-21  5:34                                     ` Sandra Loosemore
  2016-11-21 10:24                                     ` Iain Sandoe
  1 sibling, 0 replies; 60+ messages in thread
From: Sandra Loosemore @ 2016-11-21  5:34 UTC (permalink / raw)
  To: Matthias Klose, Iain Sandoe
  Cc: Mike Stump, Rainer Orth, Jeff Law, Andrew Haley, GCC Patches,
	GCJ-patches

On 11/20/2016 01:42 PM, Matthias Klose wrote:

> +The options @option{--with-target-bdw-gc-include} and
> +@option{--with-target-bdw-gc-include} must always specified together for
> +each multilib variant and take precedence over
> +@option{--with-target-bdw-gc-include}.  If none of these options are
> +specified, the values are taken from the @command{pkg-config}
> +@samp{bdw-gc} module.

This paragraph makes no sense to me.  :-(

-Sandra

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-10-10  7:58                                 ` Iain Sandoe
@ 2016-11-20 20:42                                   ` Matthias Klose
  2016-11-21  5:34                                     ` Sandra Loosemore
  2016-11-21 10:24                                     ` Iain Sandoe
  0 siblings, 2 replies; 60+ messages in thread
From: Matthias Klose @ 2016-11-20 20:42 UTC (permalink / raw)
  To: Iain Sandoe
  Cc: Mike Stump, Rainer Orth, Jeff Law, Andrew Haley, GCC Patches,
	GCJ-patches

[-- Attachment #1: Type: text/plain, Size: 3124 bytes --]

On 10.10.2016 09:58, Iain Sandoe wrote:
> 
>> On 10 Oct 2016, at 05:03, Matthias Klose <doko@ubuntu.com> wrote:
>>
>> On 07.10.2016 10:30, Iain Sandoe wrote:
>>>
>>>> On 7 Oct 2016, at 00:58, Matthias Klose <doko@ubuntu.com> wrote:
>>>>
>>>> On 06.10.2016 20:00, Mike Stump wrote:
>>>>> On Oct 6, 2016, at 9:56 AM, Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> wrote:
>>>>>> I wouldn't hard-fail, but completely disable objc-gc with an appropriate
>>>>>> warning.  The Objective-C maintainers may have other preferences, though.
>>>>
>>>> I think I can't do that in the top level make file very well (currently I only
>>>> have the pkg-config check there for an early failure, but that check doesn't
>>>> tell me if the library is present for all multilib variants). And I can't check
>>>> for multilibs because I don't know if the bootstrap compiler is multilib aware.
>>>
>>> hrm, so perhaps we need a —with-target-boehm-gc= type arrangement, and it’s the configurer’s responsibility to provide a path with appropriate headers/libs for the multi-lib configuration being attempted.
>>
>> I don't understand what you are proposing here.
> 
> given that:
>  auto-detection of the capabilities could be quite difficult (or, in the general case, unachievable) for the reasons you gave.
>  the chosen target libraries might be in a non-standard place.
> 
> making it an explicit requirement to point to them, and to ensure that the versions/multi-libs provided are suitable, (by putting —with-target-boehm-gc=/path/to/suitable/) would mean that the dependent configury (for objc-gc) could be just conditional upon the  presence of the "with-target-boehm-gc”.
> 
> I suppose that one could make "—with-target-boehm-gc” (no attached path) declare that the library (and requisite mult-lib versions) will be found in the sysroot without any additional work.
> 
> The point here was to simplify the dependent configury so that it only needs to test something that the configuring user specifies (i.e. if they specify objc-gc, then they need also to specify the place that the gc lib can be found).

So here is the next proposal, I hope the added documentation in install.texi
makes the usage clear.

<toplevel>

2016-11-19  Matthias Klose  <doko@ubuntu.com>

	* Makefile.def: Remove reference to boehm-gc target module.
  	* configure.ac: Include pkg.m4, check for --with-target-bdw-gc
	options and for the bdw-gc pkg-config module.
	* configure: Regenerate.
	* Makefile.in: Regenerate.

gcc/

2016-11-19  Matthias Klose  <doko@ubuntu.com>

	* doc/install.texi: Document configure options --enable-objc-gc
	and --with-target-bdw-gc.

config/

2016-11-19  Matthias Klose  <doko@ubuntu.com>

	* pkg.m4: New file.

libobjc/

2016-11-19  Matthias Klose  <doko@ubuntu.com>

	* configure.ac (--enable-objc-gc): Allow to configure with a
	system provided boehm-gc.
	* configure: Regenerate.
	* Makefile.in (OBJC_BOEHM_GC_LIBS): Get value from configure.
	* gc.c: Include system bdw-gc headers.
	* memory.c: Likewise
	* objects.c: Likewise

boehm-gc/

2016-11-19  Matthias Klose  <doko@ubuntu.com>

	Remove




[-- Attachment #2: libobjc-bdw-gc.diff --]
[-- Type: text/x-diff, Size: 15646 bytes --]

<toplevel>

2016-11-19  Matthias Klose  <doko@ubuntu.com>

	* Makefile.def: Remove reference to boehm-gc target module.
  	* configure.ac: Include pkg.m4, check for --with-target-bdw-gc
	options and for the bdw-gc pkg-config module.
	* configure: Regenerate.
	* Makefile.in: Regenerate.

gcc/

2016-11-19  Matthias Klose  <doko@ubuntu.com>

	* doc/install.texi: Document configure options --enable-objc-gc
	and --with-target-bdw-gc.

config/

2016-11-19  Matthias Klose  <doko@ubuntu.com>

	* pkg.m4: New file.

libobjc/

2016-11-19  Matthias Klose  <doko@ubuntu.com>

	* configure.ac (--enable-objc-gc): Allow to configure with a
	system provided boehm-gc.
	* configure: Regenerate.
	* Makefile.in (OBJC_BOEHM_GC_LIBS): Get value from configure.
	* gc.c: Include system bdw-gc headers.
	* memory.c: Likewise
	* objects.c: Likewise

boehm-gc/

2016-11-19  Matthias Klose  <doko@ubuntu.com>

	Remove

Index: Makefile.def
===================================================================
--- Makefile.def	(revision 242638)
+++ Makefile.def	(working copy)
@@ -166,7 +166,6 @@
 target_modules = { module= libgloss; no_check=true; };
 target_modules = { module= libffi; no_install=true; };
 target_modules = { module= zlib; };
-target_modules = { module= boehm-gc; };
 target_modules = { module= rda; };
 target_modules = { module= libada; };
 target_modules = { module= libgomp; bootstrap= true; lib_path=.libs; };
@@ -543,7 +542,6 @@
 // a dependency on libgcc for native targets to configure.
 lang_env_dependencies = { module=libiberty; no_c=true; };
 
-dependencies = { module=configure-target-boehm-gc; on=all-target-libstdc++-v3; };
 dependencies = { module=configure-target-fastjar; on=configure-target-zlib; };
 dependencies = { module=all-target-fastjar; on=all-target-zlib; };
 dependencies = { module=configure-target-libgo; on=configure-target-libffi; };
@@ -551,8 +549,6 @@
 dependencies = { module=all-target-libgo; on=all-target-libbacktrace; };
 dependencies = { module=all-target-libgo; on=all-target-libffi; };
 dependencies = { module=all-target-libgo; on=all-target-libatomic; };
-dependencies = { module=configure-target-libobjc; on=configure-target-boehm-gc; };
-dependencies = { module=all-target-libobjc; on=all-target-boehm-gc; };
 dependencies = { module=configure-target-libstdc++-v3; on=configure-target-libgomp; };
 dependencies = { module=configure-target-liboffloadmic; on=configure-target-libgomp; };
 dependencies = { module=configure-target-libsanitizer; on=all-target-libstdc++-v3; };
Index: configure.ac
===================================================================
--- configure.ac	(revision 242638)
+++ configure.ac	(working copy)
@@ -29,6 +29,7 @@
 m4_include([ltversion.m4])
 m4_include([lt~obsolete.m4])
 m4_include([config/isl.m4])
+m4_include([config/pkg.m4])
 
 AC_INIT(move-if-change)
 AC_PREREQ(2.64)
@@ -161,7 +162,6 @@
 		target-libssp \
 		target-libquadmath \
 		target-libgfortran \
-		target-boehm-gc \
 		target-libffi \
 		target-libobjc \
 		target-libada \
@@ -2060,22 +2060,36 @@
 AC_ARG_ENABLE(objc-gc,
 [AS_HELP_STRING([--enable-objc-gc],
 		[enable use of Boehm's garbage collector with the
-		 GNU Objective-C runtime])],
-[case ,${enable_languages},:${enable_objc_gc}:${noconfigdirs} in
-  *,objc,*:*:yes:*target-boehm-gc*)
-    AC_MSG_ERROR([Boehm's garbage collector was requested yet not supported in this configuration])
-    ;;
-esac])
-
-# Make sure we only build Boehm's garbage collector if required.
-case ,${enable_languages},:${enable_objc_gc} in
-  *,objc,*:yes)
-    # Keep target-boehm-gc if requested for Objective-C.
-    ;;
-  *)
-    # Otherwise remove target-boehm-gc.
-    noconfigdirs="$noconfigdirs target-boehm-gc"
-    ;;
+		 GNU Objective-C runtime])])
+AC_ARG_WITH([target-bdw-gc],
+[AS_HELP_STRING([--with-target-bdw-gc=PATHLIST],
+		[specify prefix directory for installed bdw-gc package.
+		 Equivalent to --with-bdw-gc-include=PATH/include
+		 plus --with-bdw-gc-lib=PATH/lib])])
+AC_ARG_WITH([target-bdw-gc-include],
+[AS_HELP_STRING([--with-target-bdw-gc-include=PATHLIST],
+		[specify directories for installed bdw-gc include files])])
+AC_ARG_WITH([target-bdw-gc-lib],
+[AS_HELP_STRING([--with-target-bdw-gc-lib=PATHLIST],
+		[specify directories for installed bdw-gc library])])
+		  
+case ,${enable_languages},:${enable_objc_gc} in *,objc,*:yes|*,objc,*:auto)
+  AC_MSG_CHECKING([for bdw garbage collector])
+  if test "x$with_target_bdw_gc$with_target_bdw_gc_include$with_target_bdw_gc_lib" = x; then
+    dnl no bdw-gw options, fall back to the bdw-gc pkg-config module
+    PKG_CHECK_EXISTS(bdw-gc,
+      AC_MSG_RESULT([using bdw-gc pkg-config module]),
+      AC_MSG_ERROR([no --with-target-bdw-gc options and no bdw-gc pkg-config module found]))
+  else
+    dnl bdw-gw options, first error checking, complete checking in libobjc
+    if test "x$with_target_bdw_gc_include" = x && test "x$with_target_bdw_gc_lib" != x; then
+      AC_MSG_ERROR([found --with-target-bdw-gc-lib but --with-target-bdw-gc-include missing])
+    elif test "x$with_target_bdw_gc_include" != x && test "x$with_target_bdw_gc_lib" = x; then
+      AC_MSG_ERROR([found --with-target-bdw-gc-include but --with-target-bdw-gc-lib missing])
+    else
+      AC_MSG_RESULT([using paths configured with --with-target-bdw-gc options])
+    fi
+  fi
 esac
 
 # Disable libcilkrts, libitm, libsanitizer, libvtv, liboffloadmic if we're not building C++
Index: gcc/doc/install.texi
===================================================================
--- gcc/doc/install.texi	(revision 242638)
+++ gcc/doc/install.texi	(working copy)
@@ -2143,6 +2143,36 @@
 overrides, you can pass a setting for @env{CONFIG_SITE} and set
 variables in the site file.
 
+@subheading Objective-C-Specific Options
+
+The following options apply to the build of the Objective-C runtime library.
+
+@table @code
+@item --enable-objc-gc
+Specify that an additional variant of the GNU Objective-C runtime library
+is built, using an external build of the Boehm-Demers-Weiser garbage
+collector (@uref{http://www.hboehm.info/gc/}).  This library needs to be
+available for each multilib variant, unless configured with
+@option{--enable-objc-gc=@samp{auto}} in which case the build of the
+additional runtime library is skipped and the build continues.
+
+@item --with-target-bdw-gc=@var{list}
+@itemx --with-target-bdw-gc-include=@var{list}
+@itemx --with-target-bdw-gc-lib=@var{list}
+Specify search directories for the garbage collector header files and
+libraries. @var{list} is a comma separated list of key value pairs of the
+form @samp{@var{multilibdir}@=@var{path}}, where the default multilib key
+is named as @samp{.} (dot), or is omitted (e.g.
+@samp{--with-target-bdw-gc=/opt/bdw-gc,32=/opt-bdw-gc32}).
+
+The options @option{--with-target-bdw-gc-include} and
+@option{--with-target-bdw-gc-include} must always specified together for
+each multilib variant and take precedence over
+@option{--with-target-bdw-gc-include}.  If none of these options are
+specified, the values are taken from the @command{pkg-config}
+@samp{bdw-gc} module.
+@end table
+
 @html
 <hr />
 <p>
Index: libobjc/Makefile.in
===================================================================
--- libobjc/Makefile.in	(revision 242638)
+++ libobjc/Makefile.in	(working copy)
@@ -47,8 +47,6 @@
 
 top_builddir = .
 
--include ../boehm-gc/threads.mk
-
 libdir = $(exec_prefix)/lib
 libsubdir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)
 
@@ -95,7 +93,7 @@
 OBJC_GCFLAGS=@OBJC_GCFLAGS@
 OBJC_BOEHM_GC=@OBJC_BOEHM_GC@
 OBJC_BOEHM_GC_INCLUDES=@OBJC_BOEHM_GC_INCLUDES@
-OBJC_BOEHM_GC_LIBS=../boehm-gc/libgcjgc_convenience.la $(thread_libs_and_flags)
+OBJC_BOEHM_GC_LIBS=@OBJC_BOEHM_GC_LIBS@
 
 INCLUDES = -I$(srcdir)/$(MULTISRCTOP)../gcc \
   -I$(srcdir)/$(MULTISRCTOP)../gcc/config \
Index: libobjc/configure.ac
===================================================================
--- libobjc/configure.ac	(revision 242638)
+++ libobjc/configure.ac	(working copy)
@@ -18,6 +18,8 @@
 #along with GCC; see the file COPYING3.  If not see
 #<http://www.gnu.org/licenses/>.
 
+m4_include([../config/pkg.m4])
+
 AC_PREREQ(2.64)
 AC_INIT(package-unused, version-unused,, libobjc)
 AC_CONFIG_SRCDIR([objc/objc.h])
@@ -57,26 +59,6 @@
 [version_specific_libs=no])
 AC_MSG_RESULT($version_specific_libs)
 
-AC_ARG_ENABLE(objc-gc,
-[  --enable-objc-gc       enable the use of Boehm's garbage collector with
-                          the GNU Objective-C runtime.],
-[case $enable_objc_gc in
-  no)
-    OBJC_GCFLAGS=''
-    OBJC_BOEHM_GC=''
-    OBJC_BOEHM_GC_INCLUDES=''
-    ;;
-  *)
-    OBJC_GCFLAGS='-DOBJC_WITH_GC=1'
-    OBJC_BOEHM_GC='libobjc_gc$(libsuffix).la'
-    OBJC_BOEHM_GC_INCLUDES='-I$(top_srcdir)/../boehm-gc/include -I../boehm-gc/include'
-    ;;
-esac],
-[OBJC_GCFLAGS=''; OBJC_BOEHM_GC=''; OBJC_BOEHM_GC_INCLUDES=''])
-AC_SUBST(OBJC_GCFLAGS)
-AC_SUBST(OBJC_BOEHM_GC)
-AC_SUBST(OBJC_BOEHM_GC_INCLUDES)
-
 # -----------
 # Directories
 # -----------
@@ -214,6 +196,163 @@
 
 gt_BITFIELD_TYPE_MATTERS
 
+# -----------
+# boehm-gc
+# -----------
+
+AC_ARG_ENABLE(objc-gc,
+[AS_HELP_STRING([--enable-objc-gc],
+		[enable use of Boehm's garbage collector with the
+		 GNU Objective-C runtime])])
+AC_ARG_WITH([target-bdw-gc],
+[AS_HELP_STRING([--with-target-bdw-gc=PATHLIST],
+		[specify prefix directory for installed bdw-gc package.
+		 Equivalent to --with-bdw-gc-include=PATH/include
+		 plus --with-bdw-gc-lib=PATH/lib])])
+AC_ARG_WITH([target-bdw-gc-include],
+[AS_HELP_STRING([--with-target-bdw-gc-include=PATHLIST],
+		[specify directories for installed bdw-gc include files])])
+AC_ARG_WITH([target-bdw-gc-lib],
+[AS_HELP_STRING([--with-target-bdw-gc-lib=PATHLIST],
+		[specify directories for installed bdw-gc library])])
+		  
+case "$enable_objc_gc" in
+no)
+  use_bdw_gc=no
+  ;;
+*)
+  AC_MSG_CHECKING([for bdw garbage collector])
+  if test "x$with_target_bdw_gc$with_target_bdw_gc_include$with_target_bdw_gc_lib" = x; then
+    dnl no bdw-gw options, fall back to the bdw-gc pkg-config module
+    PKG_CHECK_EXISTS(bdw-gc,
+      AC_MSG_RESULT([using bdw-gc pkg-config module]),
+      AC_MSG_ERROR([no --with-target-bdw-gc options and no bdw-gc pkg-config module found]))
+  else
+    dnl bdw-gw options, first error checking, complete checking in libobjc
+    if test "x$with_target_bdw_gc_include" = x && test "x$with_target_bdw_gc_lib" != x; then
+      AC_MSG_ERROR([found --with-target-bdw-gc-lib but --with-target-bdw-gc-include missing])
+    elif test "x$with_target_bdw_gc_include" != x && test "x$with_target_bdw_gc_lib" = x; then
+      AC_MSG_ERROR([found --with-target-bdw-gc-include but --with-target-bdw-gc-lib missing])
+    else
+      AC_MSG_RESULT([using paths configured with --with-target-bdw-gc options])
+    fi
+  fi
+  mldir=`${CC-gcc} --print-multi-directory 2>/dev/null`
+  bdw_val=
+  if test "x$with_target_bdw_gc" != x; then
+    for i in `echo $with_target_bdw_gc | tr ',' ' '`; do
+      case "$i" in
+        *=*) sd=${i%%=*}; d=${i#*=} ;;
+        *) sd=.; d=$i ;;
+      esac
+      if test "$mldir" = "$sd"; then
+        bdw_val=$d
+      fi
+    done
+    if test "x$bdw_val" = x; then
+      AC_MSG_ERROR([no multilib path ($mldir) found in --with-target-bdw-gc])
+    fi
+    bdw_inc_dir="$bdw_val/include"
+    bdw_lib_dir="$bdw_val/lib"
+  fi
+  bdw_val=
+  if test "x$with_target_bdw_gc_include" != x; then
+    for i in `echo $with_target_bdw_gc_include | tr ',' ' '`; do
+      case "$i" in
+        *=*) sd=${i%%=*}; d=${i#*=} ;;
+        *) sd=.; d=$i ;;
+      esac
+      if test "$mldir" = "$sd"; then
+        bdw_val=$d
+      fi
+    done
+    if test "x$bdw_val" = x; then
+      AC_MSG_ERROR([no multilib path ($mldir) found in --with-target-bdw-gc-include])
+    fi
+    bdw_inc_dir="$bdw_val"
+  fi
+  bdw_val=
+  if test "x$with_target_bdw_gc_lib" != x; then
+    for i in `echo $with_target_bdw_gc_lib | tr ',' ' '`; do
+      case "$i" in
+        *=*) sd=${i%%=*}; d=${i#*=} ;;
+        *) sd=.; d=$i ;;
+      esac
+      if test "$mldir" = "$sd"; then
+        bdw_val=$d
+      fi
+    done
+    if test "x$bdw_val" = x; then
+      AC_MSG_ERROR([no multilib path ($mldir) found in --with-target-bdw-gc-lib])
+    fi
+    bdw_lib_dir="$bdw_val"
+  fi
+  if test "x$bdw_inc_dir" = x; then
+    AC_MSG_ERROR([no multilib path ($mldir) found in --with-target-bdw-gc-include])
+  fi
+  if test "x$bdw_lib_dir" = x; then
+    AC_MSG_ERROR([no multilib path ($mldir) found in --with-target-bdw-gc-lib])
+  fi
+  BDW_GC_CFLAGS="-I$bdw_inc_dir"
+  BDW_GC_LIBS="-L$bdw_lib_dir -lgc"
+  AC_MSG_RESULT([found])
+  use_bdw_gc=maybe
+esac
+
+if test "$use_bdw_gc" = maybe; then
+  AC_MSG_CHECKING([for system boehm-gc])
+  save_CFLAGS=$CFLAGS
+  save_LIBS=$LIBS
+  CFLAGS="$CFLAGS $BDW_GC_CFLAGS"
+  LIBS="$LIBS $BDW_GC_LIBS"
+  dnl the link test is not good enough for ARM32 multilib detection,
+  dnl first check to link, then to run
+  AC_LINK_IFELSE(
+    [AC_LANG_PROGRAM([#include <gc/gc.h>],[GC_init()])],
+    [
+      AC_RUN_IFELSE([AC_LANG_SOURCE([[
+        #include <gc/gc.h>
+        int main() {
+          GC_init();
+          return 0;
+        }
+        ]])],
+        [system_bdw_gc_found=yes],
+        [system_bdw_gc_found=no],
+        dnl assume no system boehm-gc for cross builds ...
+        [system_bdw_gc_found=no]
+      )
+    ],
+    [system_bdw_gc_found=no])
+  CFLAGS=$save_CFLAGS
+  LIBS=$save_LIBS
+  if test x$enable_objc_gc = xauto && test x$system_bdw_gc_found = xno; then
+    AC_MSG_WARN([system bdw-gc not found, not building libobjc_gc])
+    use_bdw_gc=no
+  elif test x$enable_objc_gc = xyes && test x$system_bdw_gc_found = xno; then
+    AC_MSG_ERROR([system bdw-gc required but not found])
+  else
+    use_bdw_gc=yes
+    AC_MSG_RESULT([found])
+  fi
+fi
+
+if test "$use_bdw_gc" = no; then
+  OBJC_GCFLAGS=''
+  OBJC_BOEHM_GC=''
+  OBJC_BOEHM_GC_INCLUDES=''
+  OBJC_BOEHM_GC_LIBS=''
+else
+  OBJC_GCFLAGS='-DOBJC_WITH_GC=1'
+  OBJC_BOEHM_GC='libobjc_gc$(libsuffix).la'
+  OBJC_BOEHM_GC_INCLUDES=$BDW_GC_CFLAGS
+  OBJC_BOEHM_GC_LIBS=$BDW_GC_LIBS
+fi
+AC_SUBST(OBJC_GCFLAGS)
+AC_SUBST(OBJC_BOEHM_GC)
+AC_SUBST(OBJC_BOEHM_GC_INCLUDES)
+AC_SUBST(OBJC_BOEHM_GC_LIBS)
+
 # ------
 # Output
 # ------
Index: libobjc/gc.c
===================================================================
--- libobjc/gc.c	(revision 242638)
+++ libobjc/gc.c	(working copy)
@@ -36,7 +36,7 @@
 #include "objc/runtime.h"
 #include "objc-private/module-abi-8.h"
 
-#include <gc.h>
+#include <gc/gc.h>
 #include <limits.h>
 
 /* gc_typed.h uses the following but doesn't declare them */
@@ -44,7 +44,7 @@
 typedef GC_signed_word signed_word;
 #define BITS_PER_WORD (CHAR_BIT * sizeof (word))
 
-#include <gc_typed.h>
+#include <gc/gc_typed.h>
 
 /* The following functions set up in `mask` the corresponding pointers.
    The offset is incremented with the size of the type.  */
Index: libobjc/memory.c
===================================================================
--- libobjc/memory.c	(revision 242638)
+++ libobjc/memory.c	(working copy)
@@ -41,7 +41,7 @@
 #include "objc/runtime.h"
 
 #if OBJC_WITH_GC
-#include <gc.h>
+#include <gc/gc.h>
 
 void *
 objc_malloc (size_t size)
Index: libobjc/objects.c
===================================================================
--- libobjc/objects.c	(revision 242638)
+++ libobjc/objects.c	(working copy)
@@ -31,8 +31,8 @@
 #include <string.h>                     /* For memcpy()  */
 
 #if OBJC_WITH_GC
-# include <gc.h>
-# include <gc_typed.h>
+# include <gc/gc.h>
+# include <gc/gc_typed.h>
 #endif
 
 /* FIXME: The semantics of extraBytes are not really clear.  */

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-10-10  4:03                               ` Matthias Klose
@ 2016-10-10  7:58                                 ` Iain Sandoe
  2016-11-20 20:42                                   ` Matthias Klose
  0 siblings, 1 reply; 60+ messages in thread
From: Iain Sandoe @ 2016-10-10  7:58 UTC (permalink / raw)
  To: Matthias Klose
  Cc: Mike Stump, Rainer Orth, Jeff Law, Andrew Haley, GCC Patches,
	GCJ-patches


> On 10 Oct 2016, at 05:03, Matthias Klose <doko@ubuntu.com> wrote:
> 
> On 07.10.2016 10:30, Iain Sandoe wrote:
>> 
>>> On 7 Oct 2016, at 00:58, Matthias Klose <doko@ubuntu.com> wrote:
>>> 
>>> On 06.10.2016 20:00, Mike Stump wrote:
>>>> On Oct 6, 2016, at 9:56 AM, Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> wrote:
>>>>> I wouldn't hard-fail, but completely disable objc-gc with an appropriate
>>>>> warning.  The Objective-C maintainers may have other preferences, though.
>>> 
>>> I think I can't do that in the top level make file very well (currently I only
>>> have the pkg-config check there for an early failure, but that check doesn't
>>> tell me if the library is present for all multilib variants). And I can't check
>>> for multilibs because I don't know if the bootstrap compiler is multilib aware.
>> 
>> hrm, so perhaps we need a —with-target-boehm-gc= type arrangement, and it’s the configurer’s responsibility to provide a path with appropriate headers/libs for the multi-lib configuration being attempted.
> 
> I don't understand what you are proposing here.

given that:
 auto-detection of the capabilities could be quite difficult (or, in the general case, unachievable) for the reasons you gave.
 the chosen target libraries might be in a non-standard place.

making it an explicit requirement to point to them, and to ensure that the versions/multi-libs provided are suitable, (by putting —with-target-boehm-gc=/path/to/suitable/) would mean that the dependent configury (for objc-gc) could be just conditional upon the  presence of the "with-target-boehm-gc”.

I suppose that one could make "—with-target-boehm-gc” (no attached path) declare that the library (and requisite mult-lib versions) will be found in the sysroot without any additional work.

The point here was to simplify the dependent configury so that it only needs to test something that the configuring user specifies (i.e. if they specify objc-gc, then they need also to specify the place that the gc lib can be found).

>>>> gcc historically is fairly weak at complex configurations.  I need the 32 bit libraries to support -m32, but, those libraries might not be present, but do I build all the rest of my libraries, and if i do, do I test them once build, but what is other dependent external libraries are missing.  Do I turn off the multilib, or do I not?
>>>> 
>>>> I used to manage some of this by passing in configure flags to control multilibbing based upon what libraries were install and then run testing based upon that.  Of course, that's all external to gcc proper. Doesn't really make gcc any easier to configure and build or advance gcc.
>>>> 
>>>> We could smell the system at configure time, and turn on and off multilib variants and things like objc gc. Target specific, but I think it helps to ponder this in a target independent way.  This can then turn on and off objc gc support directly.  To get it on, one would need to install the needed libraries, and reconfigure and rebuild gcc.  I think I might like that the best.  Has a nice easy of use about it, and then everything gcc does is rather sane (no funny build errors when a needed library isn't present).
>>>> 
>>>> 
>>>> So, I think, if I understand what you propose, I'm fine with that.
>>> 
>>> So your proposal is to replace the ": dnl ..." line in libobjc/configure.ac with
>>> a hard error message and leave it to the user to correctly configure GCC?  That
>>> would rely on the compiler to find the library in a system wide multilib aware
>>> directory (e.g. /usr/lib/i386-linux-gnu, or /usr/lib32).  Is this the case for
>>> Solaris and Darwin?
>> 
>> for Darwin, it’s not a default install (but then neither are the host deps such as gmp & friends) - so the toolchain builder on Darwin already needs to make some provisions outside the system.  It’s just that the only target provisions to date have been the sysroot (we haven’t yet made use of add-on target libs).
>> 
>>> I'm fine with that, it wouldn't affect configurations like x86_64-linux-gnu
>>> where multilib is the default (but objc-gc is not).
>>> 
>>> Looking back at libjava, I think everybody disabled multilibs for libjava,
>>> because nobody had a complete gtk2 stack for multilibs, however that was a
>>> complete subdir, not just a certain configuration in that subdir. Looking back
>>> at libffi and separate released libffi's I first built multilib'ed libffi
>>> libraries from the libffi source for Debian/Ubuntu, then dropped these because
>>> they were not used, and until today GCC internal and external libffi are
>>> hopelessly out of sync, so you couldn't use an external libffi to build libjava.
>> 
>> Becase Darwin’s libjava does not depend on the gtk2 stack, actually normally libjava (and libffi, gc) were generally built and tested (by those who cared to do it) as multilibs [the default].
>>> 
>>> In the past I looked at updating boehm-gc to recent sources but never finished
>>> because libjava relied on internals.  Afaics this is not the case for objc-gc,
>>> so maybe you could update boehm-gc. But I don't want to go this road myself …
>> 
>> .. and I don’t have cycles to volunteer to try this at present either.
>> Iain
>> 
>> 
>>> 
>>> Matthias
>> 
> 

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-10-07  8:31                             ` Iain Sandoe
@ 2016-10-10  4:03                               ` Matthias Klose
  2016-10-10  7:58                                 ` Iain Sandoe
  0 siblings, 1 reply; 60+ messages in thread
From: Matthias Klose @ 2016-10-10  4:03 UTC (permalink / raw)
  To: Iain Sandoe
  Cc: Mike Stump, Rainer Orth, Jeff Law, Andrew Haley, GCC Patches,
	GCJ-patches

On 07.10.2016 10:30, Iain Sandoe wrote:
> 
>> On 7 Oct 2016, at 00:58, Matthias Klose <doko@ubuntu.com> wrote:
>>
>> On 06.10.2016 20:00, Mike Stump wrote:
>>> On Oct 6, 2016, at 9:56 AM, Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> wrote:
>>>> I wouldn't hard-fail, but completely disable objc-gc with an appropriate
>>>> warning.  The Objective-C maintainers may have other preferences, though.
>>
>> I think I can't do that in the top level make file very well (currently I only
>> have the pkg-config check there for an early failure, but that check doesn't
>> tell me if the library is present for all multilib variants). And I can't check
>> for multilibs because I don't know if the bootstrap compiler is multilib aware.
> 
> hrm, so perhaps we need a —with-target-boehm-gc= type arrangement, and it’s the configurer’s responsibility to provide a path with appropriate headers/libs for the multi-lib configuration being attempted.

I don't understand what you are proposing here.

>>> gcc historically is fairly weak at complex configurations.  I need the 32 bit libraries to support -m32, but, those libraries might not be present, but do I build all the rest of my libraries, and if i do, do I test them once build, but what is other dependent external libraries are missing.  Do I turn off the multilib, or do I not?
>>>
>>> I used to manage some of this by passing in configure flags to control multilibbing based upon what libraries were install and then run testing based upon that.  Of course, that's all external to gcc proper. Doesn't really make gcc any easier to configure and build or advance gcc.
>>>
>>> We could smell the system at configure time, and turn on and off multilib variants and things like objc gc. Target specific, but I think it helps to ponder this in a target independent way.  This can then turn on and off objc gc support directly.  To get it on, one would need to install the needed libraries, and reconfigure and rebuild gcc.  I think I might like that the best.  Has a nice easy of use about it, and then everything gcc does is rather sane (no funny build errors when a needed library isn't present).
>>>
>>>
>>> So, I think, if I understand what you propose, I'm fine with that.
>>
>> So your proposal is to replace the ": dnl ..." line in libobjc/configure.ac with
>> a hard error message and leave it to the user to correctly configure GCC?  That
>> would rely on the compiler to find the library in a system wide multilib aware
>> directory (e.g. /usr/lib/i386-linux-gnu, or /usr/lib32).  Is this the case for
>> Solaris and Darwin?
> 
> for Darwin, it’s not a default install (but then neither are the host deps such as gmp & friends) - so the toolchain builder on Darwin already needs to make some provisions outside the system.  It’s just that the only target provisions to date have been the sysroot (we haven’t yet made use of add-on target libs).
> 
>> I'm fine with that, it wouldn't affect configurations like x86_64-linux-gnu
>> where multilib is the default (but objc-gc is not).
>>
>> Looking back at libjava, I think everybody disabled multilibs for libjava,
>> because nobody had a complete gtk2 stack for multilibs, however that was a
>> complete subdir, not just a certain configuration in that subdir. Looking back
>> at libffi and separate released libffi's I first built multilib'ed libffi
>> libraries from the libffi source for Debian/Ubuntu, then dropped these because
>> they were not used, and until today GCC internal and external libffi are
>> hopelessly out of sync, so you couldn't use an external libffi to build libjava.
> 
> Becase Darwin’s libjava does not depend on the gtk2 stack, actually normally libjava (and libffi, gc) were generally built and tested (by those who cared to do it) as multilibs [the default].
>>
>> In the past I looked at updating boehm-gc to recent sources but never finished
>> because libjava relied on internals.  Afaics this is not the case for objc-gc,
>> so maybe you could update boehm-gc. But I don't want to go this road myself …
> 
> .. and I don’t have cycles to volunteer to try this at present either.
> Iain
> 
> 
>>
>> Matthias
> 

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-10-06 23:59                           ` Matthias Klose
@ 2016-10-07  8:31                             ` Iain Sandoe
  2016-10-10  4:03                               ` Matthias Klose
  0 siblings, 1 reply; 60+ messages in thread
From: Iain Sandoe @ 2016-10-07  8:31 UTC (permalink / raw)
  To: Matthias Klose
  Cc: Mike Stump, Rainer Orth, Jeff Law, Andrew Haley, GCC Patches,
	GCJ-patches


> On 7 Oct 2016, at 00:58, Matthias Klose <doko@ubuntu.com> wrote:
> 
> On 06.10.2016 20:00, Mike Stump wrote:
>> On Oct 6, 2016, at 9:56 AM, Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> wrote:
>>> I wouldn't hard-fail, but completely disable objc-gc with an appropriate
>>> warning.  The Objective-C maintainers may have other preferences, though.
> 
> I think I can't do that in the top level make file very well (currently I only
> have the pkg-config check there for an early failure, but that check doesn't
> tell me if the library is present for all multilib variants). And I can't check
> for multilibs because I don't know if the bootstrap compiler is multilib aware.

hrm, so perhaps we need a —with-target-boehm-gc= type arrangement, and it’s the configurer’s responsibility to provide a path with appropriate headers/libs for the multi-lib configuration being attempted.
> 
>> gcc historically is fairly weak at complex configurations.  I need the 32 bit libraries to support -m32, but, those libraries might not be present, but do I build all the rest of my libraries, and if i do, do I test them once build, but what is other dependent external libraries are missing.  Do I turn off the multilib, or do I not?
>> 
>> I used to manage some of this by passing in configure flags to control multilibbing based upon what libraries were install and then run testing based upon that.  Of course, that's all external to gcc proper. Doesn't really make gcc any easier to configure and build or advance gcc.
>> 
>> We could smell the system at configure time, and turn on and off multilib variants and things like objc gc. Target specific, but I think it helps to ponder this in a target independent way.  This can then turn on and off objc gc support directly.  To get it on, one would need to install the needed libraries, and reconfigure and rebuild gcc.  I think I might like that the best.  Has a nice easy of use about it, and then everything gcc does is rather sane (no funny build errors when a needed library isn't present).
>> 
>> 
>> So, I think, if I understand what you propose, I'm fine with that.
> 
> So your proposal is to replace the ": dnl ..." line in libobjc/configure.ac with
> a hard error message and leave it to the user to correctly configure GCC?  That
> would rely on the compiler to find the library in a system wide multilib aware
> directory (e.g. /usr/lib/i386-linux-gnu, or /usr/lib32).  Is this the case for
> Solaris and Darwin?

for Darwin, it’s not a default install (but then neither are the host deps such as gmp & friends) - so the toolchain builder on Darwin already needs to make some provisions outside the system.  It’s just that the only target provisions to date have been the sysroot (we haven’t yet made use of add-on target libs).

> I'm fine with that, it wouldn't affect configurations like x86_64-linux-gnu
> where multilib is the default (but objc-gc is not).
> 
> Looking back at libjava, I think everybody disabled multilibs for libjava,
> because nobody had a complete gtk2 stack for multilibs, however that was a
> complete subdir, not just a certain configuration in that subdir. Looking back
> at libffi and separate released libffi's I first built multilib'ed libffi
> libraries from the libffi source for Debian/Ubuntu, then dropped these because
> they were not used, and until today GCC internal and external libffi are
> hopelessly out of sync, so you couldn't use an external libffi to build libjava.

Becase Darwin’s libjava does not depend on the gtk2 stack, actually normally libjava (and libffi, gc) were generally built and tested (by those who cared to do it) as multilibs [the default].
> 
> In the past I looked at updating boehm-gc to recent sources but never finished
> because libjava relied on internals.  Afaics this is not the case for objc-gc,
> so maybe you could update boehm-gc. But I don't want to go this road myself …

.. and I don’t have cycles to volunteer to try this at present either.
Iain


> 
> Matthias

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-10-06 18:01                         ` Mike Stump
@ 2016-10-06 23:59                           ` Matthias Klose
  2016-10-07  8:31                             ` Iain Sandoe
  0 siblings, 1 reply; 60+ messages in thread
From: Matthias Klose @ 2016-10-06 23:59 UTC (permalink / raw)
  To: Mike Stump, Rainer Orth
  Cc: Iain Sandoe, Jeff Law, Andrew Haley, GCC Patches, GCJ-patches

On 06.10.2016 20:00, Mike Stump wrote:
> On Oct 6, 2016, at 9:56 AM, Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> wrote:
>> I wouldn't hard-fail, but completely disable objc-gc with an appropriate
>> warning.  The Objective-C maintainers may have other preferences, though.

I think I can't do that in the top level make file very well (currently I only
have the pkg-config check there for an early failure, but that check doesn't
tell me if the library is present for all multilib variants). And I can't check
for multilibs because I don't know if the bootstrap compiler is multilib aware.

> gcc historically is fairly weak at complex configurations.  I need the 32 bit libraries to support -m32, but, those libraries might not be present, but do I build all the rest of my libraries, and if i do, do I test them once build, but what is other dependent external libraries are missing.  Do I turn off the multilib, or do I not?
> 
> I used to manage some of this by passing in configure flags to control multilibbing based upon what libraries were install and then run testing based upon that.  Of course, that's all external to gcc proper.  Doesn't really make gcc any easier to configure and build or advance gcc.
> 
> We could smell the system at configure time, and turn on and off multilib variants and things like objc gc.  Target specific, but I think it helps to ponder this in a target independent way.  This can then turn on and off objc gc support directly.  To get it on, one would need to install the needed libraries, and reconfigure and rebuild gcc.  I think I might like that the best.  Has a nice easy of use about it, and then everything gcc does is rather sane (no funny build errors when a needed library isn't present).
> 
> 
> So, I think, if I understand what you propose, I'm fine with that.

So your proposal is to replace the ": dnl ..." line in libobjc/configure.ac with
a hard error message and leave it to the user to correctly configure GCC?  That
would rely on the compiler to find the library in a system wide multilib aware
directory (e.g. /usr/lib/i386-linux-gnu, or /usr/lib32).  Is this the case for
Solaris and Darwin?

I'm fine with that, it wouldn't affect configurations like x86_64-linux-gnu
where multilib is the default (but objc-gc is not).

Looking back at libjava, I think everybody disabled multilibs for libjava,
because nobody had a complete gtk2 stack for multilibs, however that was a
complete subdir, not just a certain configuration in that subdir. Looking back
at libffi and separate released libffi's I first built multilib'ed libffi
libraries from the libffi source for Debian/Ubuntu, then dropped these because
they were not used, and until today GCC internal and external libffi are
hopelessly out of sync, so you couldn't use an external libffi to build libjava.

In the past I looked at updating boehm-gc to recent sources but never finished
because libjava relied on internals.  Afaics this is not the case for objc-gc,
so maybe you could update boehm-gc. But I don't want to go this road myself ...

Matthias

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-10-06 16:56                       ` Rainer Orth
  2016-10-06 17:10                         ` Iain Sandoe
@ 2016-10-06 18:01                         ` Mike Stump
  2016-10-06 23:59                           ` Matthias Klose
  1 sibling, 1 reply; 60+ messages in thread
From: Mike Stump @ 2016-10-06 18:01 UTC (permalink / raw)
  To: Rainer Orth
  Cc: Matthias Klose, Iain Sandoe, Jeff Law, Andrew Haley, GCC Patches,
	GCJ-patches

On Oct 6, 2016, at 9:56 AM, Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> wrote:
> I wouldn't hard-fail, but completely disable objc-gc with an appropriate
> warning.  The Objective-C maintainers may have other preferences, though.

gcc historically is fairly weak at complex configurations.  I need the 32 bit libraries to support -m32, but, those libraries might not be present, but do I build all the rest of my libraries, and if i do, do I test them once build, but what is other dependent external libraries are missing.  Do I turn off the multilib, or do I not?

I used to manage some of this by passing in configure flags to control multilibbing based upon what libraries were install and then run testing based upon that.  Of course, that's all external to gcc proper.  Doesn't really make gcc any easier to configure and build or advance gcc.

We could smell the system at configure time, and turn on and off multilib variants and things like objc gc.  Target specific, but I think it helps to ponder this in a target independent way.  This can then turn on and off objc gc support directly.  To get it on, one would need to install the needed libraries, and reconfigure and rebuild gcc.  I think I might like that the best.  Has a nice easy of use about it, and then everything gcc does is rather sane (no funny build errors when a needed library isn't present).


So, I think, if I understand what you propose, I'm fine with that.

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-10-06 16:56                       ` Rainer Orth
@ 2016-10-06 17:10                         ` Iain Sandoe
  2016-10-06 18:01                         ` Mike Stump
  1 sibling, 0 replies; 60+ messages in thread
From: Iain Sandoe @ 2016-10-06 17:10 UTC (permalink / raw)
  To: Matthias Klose
  Cc: Jeff Law, Andrew Haley, GCC Patches, GCJ-patches, Mike Stump,
	Rainer Orth


> On 6 Oct 2016, at 17:56, Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> wrote:
> 

>>>> this assumption may not hold, though: in Solaris 11+ where libgc is
>>>> bundled, both 32 and 64-bit libs are present, as always.  I'd also claim
>>>> that for multilib testing in general, it's bad to test different
>>>> multilibs with different configurations, so I'd rather have people doing
>>>> multilib testing obtain all variants of libgc.
>>> 
>>> likewise on Darwin, people may well build “fat” libraries, and I also
>>> would encourage testing of m32/m64,
>> 
>> so you both prefer to hard-fail if any of the libgc variants needed for the
>> multilibs is missing?  Maybe force this behaviour with --enable-objc-gc=yes, and
>> skip those which are not available with -enable-objc-gc=auto?
> 
> I wouldn't hard-fail, but completely disable objc-gc with an appropriate
> warning.  The Objective-C maintainers may have other preferences, though.

that seems a reasonable strategy to me too (disable that capability when the library is not present) - I suspect that most people do not usually build with GC support anyway (but no firm statistics to back the hunch).

Iain

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-10-06 16:54                     ` Matthias Klose
@ 2016-10-06 16:56                       ` Rainer Orth
  2016-10-06 17:10                         ` Iain Sandoe
  2016-10-06 18:01                         ` Mike Stump
  0 siblings, 2 replies; 60+ messages in thread
From: Rainer Orth @ 2016-10-06 16:56 UTC (permalink / raw)
  To: Matthias Klose
  Cc: Iain Sandoe, Jeff Law, Andrew Haley, GCC Patches, GCJ-patches,
	Mike Stump

Hi Matthias,

>>> this assumption may not hold, though: in Solaris 11+ where libgc is
>>> bundled, both 32 and 64-bit libs are present, as always.  I'd also claim
>>> that for multilib testing in general, it's bad to test different
>>> multilibs with different configurations, so I'd rather have people doing
>>> multilib testing obtain all variants of libgc.
>> 
>> likewise on Darwin, people may well build “fat” libraries, and I also
>> would encourage testing of m32/m64,
>
> so you both prefer to hard-fail if any of the libgc variants needed for the
> multilibs is missing?  Maybe force this behaviour with --enable-objc-gc=yes, and
> skip those which are not available with -enable-objc-gc=auto?

I wouldn't hard-fail, but completely disable objc-gc with an appropriate
warning.  The Objective-C maintainers may have other preferences, though.

	Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-10-06 16:47                   ` Iain Sandoe
@ 2016-10-06 16:54                     ` Matthias Klose
  2016-10-06 16:56                       ` Rainer Orth
  0 siblings, 1 reply; 60+ messages in thread
From: Matthias Klose @ 2016-10-06 16:54 UTC (permalink / raw)
  To: Iain Sandoe
  Cc: Jeff Law, Andrew Haley, GCC Patches, GCJ-patches, Mike Stump,
	Rainer Orth

On 06.10.2016 18:46, Iain Sandoe wrote:
> 
>> On 6 Oct 2016, at 17:42, Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> wrote:
>>
> 
>>>> Here's what I tested. This requires a boehm-gc version 7.0 or later
>>>> (having the
>>>> header files in a gc subdirectory).  Depending on your available library, it
>>>> only builds the GC enabled library for the default multilib library, and just
>>>> skips over building the non-default multilib variants (assuming that most
>>>> people
>>>> won't have a libgc for that installed).  The --enable-objc-gc option is not
>>
>> this assumption may not hold, though: in Solaris 11+ where libgc is
>> bundled, both 32 and 64-bit libs are present, as always.  I'd also claim
>> that for multilib testing in general, it's bad to test different
>> multilibs with different configurations, so I'd rather have people doing
>> multilib testing obtain all variants of libgc.
> 
> likewise on Darwin, people may well build “fat” libraries, and I also would encourage testing of m32/m64,

so you both prefer to hard-fail if any of the libgc variants needed for the
multilibs is missing?  Maybe force this behaviour with --enable-objc-gc=yes, and
skip those which are not available with -enable-objc-gc=auto?

Matthias

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-10-06 16:43                 ` Rainer Orth
@ 2016-10-06 16:47                   ` Iain Sandoe
  2016-10-06 16:54                     ` Matthias Klose
  0 siblings, 1 reply; 60+ messages in thread
From: Iain Sandoe @ 2016-10-06 16:47 UTC (permalink / raw)
  To: Matthias Klose
  Cc: Jeff Law, Andrew Haley, GCC Patches, GCJ-patches, Mike Stump,
	Rainer Orth


> On 6 Oct 2016, at 17:42, Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> wrote:
> 

>>> Here's what I tested. This requires a boehm-gc version 7.0 or later
>>> (having the
>>> header files in a gc subdirectory).  Depending on your available library, it
>>> only builds the GC enabled library for the default multilib library, and just
>>> skips over building the non-default multilib variants (assuming that most
>>> people
>>> won't have a libgc for that installed).  The --enable-objc-gc option is not
> 
> this assumption may not hold, though: in Solaris 11+ where libgc is
> bundled, both 32 and 64-bit libs are present, as always.  I'd also claim
> that for multilib testing in general, it's bad to test different
> multilibs with different configurations, so I'd rather have people doing
> multilib testing obtain all variants of libgc.

likewise on Darwin, people may well build “fat” libraries, and I also would encourage testing of m32/m64,
Iain

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-10-06 16:16               ` Matthias Klose
@ 2016-10-06 16:43                 ` Rainer Orth
  2016-10-06 16:47                   ` Iain Sandoe
  0 siblings, 1 reply; 60+ messages in thread
From: Rainer Orth @ 2016-10-06 16:43 UTC (permalink / raw)
  To: Matthias Klose
  Cc: Jeff Law, Iain Sandoe, Andrew Haley, GCC Patches, GCJ-patches,
	Mike Stump

Hi Matthias,

>> Here's what I tested. This requires a boehm-gc version 7.0 or later
>> (having the
>> header files in a gc subdirectory).  Depending on your available library, it
>> only builds the GC enabled library for the default multilib library, and just
>> skips over building the non-default multilib variants (assuming that most
>> people
>> won't have a libgc for that installed).  The --enable-objc-gc option is not

this assumption may not hold, though: in Solaris 11+ where libgc is
bundled, both 32 and 64-bit libs are present, as always.  I'd also claim
that for multilib testing in general, it's bad to test different
multilibs with different configurations, so I'd rather have people doing
multilib testing obtain all variants of libgc.

	Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
       [not found]             ` <2b5de569-1efd-f407-49c2-c9fa84cc5315@ubuntu.com>
@ 2016-10-06 16:16               ` Matthias Klose
  2016-10-06 16:43                 ` Rainer Orth
  0 siblings, 1 reply; 60+ messages in thread
From: Matthias Klose @ 2016-10-06 16:16 UTC (permalink / raw)
  To: Jeff Law, Iain Sandoe, Rainer Orth
  Cc: Andrew Haley, GCC Patches, GCJ-patches, Mike Stump

[-- Attachment #1: Type: text/plain, Size: 1877 bytes --]

On 06.10.2016 18:14, Matthias Klose wrote:
> On 05.10.2016 18:28, Jeff Law wrote:
>> On 10/04/2016 12:39 PM, Iain Sandoe wrote:
>>>>
>>>> I don't know who wants to review it, but if people want me to, Ok.  The idea
>>>> is that if ObjC is the last remaining user in tree for boehm-gc, then
>>>> reasonably I'm the last man standing.  Of course, if others want to review
>>>> approve the patch, I'm fine with that.
>>>>
>>>> I'm fine with patches to externalize boehm-gc if people want to push that
>>>> direction.
>>>
>>> +1
>> Works for me as well, particularly since we've been horrible at updating
>> boehm-gc.  I think the in-tree version is something like 10 years old at this
>> point -- and there's been over a dozen upstream releases since we last sync'd.
>>
>> Jeff
> 
> Here's what I tested. This requires a boehm-gc version 7.0 or later (having the
> header files in a gc subdirectory).  Depending on your available library, it
> only builds the GC enabled library for the default multilib library, and just
> skips over building the non-default multilib variants (assuming that most people
> won't have a libgc for that installed).  The --enable-objc-gc option is not
> documented, so I didn't update the documentation.
> 
> Matthias
> 
> 2016-10-06  Matthias Klose  <doko@ubuntu.com>
> 
>         * boehm-gc: Remove
>         * Makefile.def: Remove boehm-gc dependencies.
>         * Makefile.in: Regenerate.
>         * configure.ac: Include pkg.m4, check for bdw-gc pkg-config module.
>         * configure: Regenerate.
> 
> config/
> 
> 2016-10-06  Matthias Klose  <doko@ubuntu.com>
> 
>         * pkg.m4: New file.
> 
> libobjc/
> 
> 2016-10-06  Matthias Klose  <doko@ubuntu.com>
> 
>         * configure.ac: Include pkg.m4, use bdw-gc pkg-config module.
>         * configure: Regenerate.

and sending the attachment again without the boehm-gc removal ...




[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: no-boehm.diff --]
[-- Type: text/x-diff; name="no-boehm.diff", Size: 18690 bytes --]

2016-10-06  Matthias Klose  <doko@ubuntu.com>

	* boehm-gc: Remove
	* Makefile.def: Remove boehm-gc dependencies.
	* Makefile.in: Regenerate.
	* configure.ac: Include pkg.m4, check for bdw-gc pkg-config module.
	* configure: Regenerate.

config/

2016-10-06  Matthias Klose  <doko@ubuntu.com>

	* pkg.m4: New file.

libobjc/

2016-10-06  Matthias Klose  <doko@ubuntu.com>

	* configure.ac: Include pkg.m4, use bdw-gc pkg-config module.
	* configure: Regenerate.
	* Makefile.in: Remove boehm-gc include, use system boehm-gc library.
	* gc.c, memory.c, objects.c: Include system boehm-gc headers.

Index: Makefile.def
===================================================================
--- Makefile.def	(revision 240829)
+++ Makefile.def	(working copy)
@@ -166,7 +166,6 @@
 target_modules = { module= libgloss; no_check=true; };
 target_modules = { module= libffi; no_install=true; };
 target_modules = { module= zlib; };
-target_modules = { module= boehm-gc; };
 target_modules = { module= rda; };
 target_modules = { module= libada; };
 target_modules = { module= libgomp; bootstrap= true; lib_path=.libs; };
@@ -544,7 +543,6 @@
 // a dependency on libgcc for native targets to configure.
 lang_env_dependencies = { module=libiberty; no_c=true; };
 
-dependencies = { module=configure-target-boehm-gc; on=all-target-libstdc++-v3; };
 dependencies = { module=configure-target-fastjar; on=configure-target-zlib; };
 dependencies = { module=all-target-fastjar; on=all-target-zlib; };
 dependencies = { module=configure-target-libgo; on=configure-target-libffi; };
@@ -552,8 +550,6 @@
 dependencies = { module=all-target-libgo; on=all-target-libbacktrace; };
 dependencies = { module=all-target-libgo; on=all-target-libffi; };
 dependencies = { module=all-target-libgo; on=all-target-libatomic; };
-dependencies = { module=configure-target-libobjc; on=configure-target-boehm-gc; };
-dependencies = { module=all-target-libobjc; on=all-target-boehm-gc; };
 dependencies = { module=configure-target-libstdc++-v3; on=configure-target-libgomp; };
 dependencies = { module=configure-target-liboffloadmic; on=configure-target-libgomp; };
 dependencies = { module=configure-target-libsanitizer; on=all-target-libstdc++-v3; };
Index: config/pkg.m4
===================================================================
--- config/pkg.m4	(nonexistent)
+++ config/pkg.m4	(working copy)
@@ -0,0 +1,275 @@
+dnl pkg.m4 - Macros to locate and utilise pkg-config.   -*- Autoconf -*-
+dnl serial 11 (pkg-config-0.29)
+dnl
+dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
+dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com>
+dnl
+dnl This program is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; either version 2 of the License, or
+dnl (at your option) any later version.
+dnl
+dnl This program is distributed in the hope that it will be useful, but
+dnl WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+dnl General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program; if not, write to the Free Software
+dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+dnl 02111-1307, USA.
+dnl
+dnl As a special exception to the GNU General Public License, if you
+dnl distribute this file as part of a program that contains a
+dnl configuration script generated by Autoconf, you may include it under
+dnl the same distribution terms that you use for the rest of that
+dnl program.
+
+dnl PKG_PREREQ(MIN-VERSION)
+dnl -----------------------
+dnl Since: 0.29
+dnl
+dnl Verify that the version of the pkg-config macros are at least
+dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's
+dnl installed version of pkg-config, this checks the developer's version
+dnl of pkg.m4 when generating configure.
+dnl
+dnl To ensure that this macro is defined, also add:
+dnl m4_ifndef([PKG_PREREQ],
+dnl     [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])])
+dnl
+dnl See the "Since" comment for each macro you use to see what version
+dnl of the macros you require.
+m4_defun([PKG_PREREQ],
+[m4_define([PKG_MACROS_VERSION], [0.29])
+m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
+    [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
+])dnl PKG_PREREQ
+
+dnl PKG_PROG_PKG_CONFIG([MIN-VERSION])
+dnl ----------------------------------
+dnl Since: 0.16
+dnl
+dnl Search for the pkg-config tool and set the PKG_CONFIG variable to
+dnl first found in the path. Checks that the version of pkg-config found
+dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is
+dnl used since that's the first version where most current features of
+dnl pkg-config existed.
+AC_DEFUN([PKG_PROG_PKG_CONFIG],
+[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
+m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
+AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
+AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+	AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
+fi
+if test -n "$PKG_CONFIG"; then
+	_pkg_min_version=m4_default([$1], [0.9.0])
+	AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
+	if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+		AC_MSG_RESULT([yes])
+	else
+		AC_MSG_RESULT([no])
+		PKG_CONFIG=""
+	fi
+fi[]dnl
+])dnl PKG_PROG_PKG_CONFIG
+
+dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+dnl -------------------------------------------------------------------
+dnl Since: 0.18
+dnl
+dnl Check to see whether a particular set of modules exists. Similar to
+dnl PKG_CHECK_MODULES(), but does not set variables or print errors.
+dnl
+dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+dnl only at the first occurence in configure.ac, so if the first place
+dnl it's called might be skipped (such as if it is within an "if", you
+dnl have to call PKG_CHECK_EXISTS manually
+AC_DEFUN([PKG_CHECK_EXISTS],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+if test -n "$PKG_CONFIG" && \
+    AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
+  m4_default([$2], [:])
+m4_ifvaln([$3], [else
+  $3])dnl
+fi])
+
+dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
+dnl ---------------------------------------------
+dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting
+dnl pkg_failed based on the result.
+m4_define([_PKG_CONFIG],
+[if test -n "$$1"; then
+    pkg_cv_[]$1="$$1"
+ elif test -n "$PKG_CONFIG"; then
+    PKG_CHECK_EXISTS([$3],
+                     [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes ],
+		     [pkg_failed=yes])
+ else
+    pkg_failed=untried
+fi[]dnl
+])dnl _PKG_CONFIG
+
+dnl _PKG_SHORT_ERRORS_SUPPORTED
+dnl ---------------------------
+dnl Internal check to see if pkg-config supports short errors.
+AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi[]dnl
+])dnl _PKG_SHORT_ERRORS_SUPPORTED
+
+
+dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+dnl   [ACTION-IF-NOT-FOUND])
+dnl --------------------------------------------------------------
+dnl Since: 0.4.0
+dnl
+dnl Note that if there is a possibility the first call to
+dnl PKG_CHECK_MODULES might not happen, you should be sure to include an
+dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
+AC_DEFUN([PKG_CHECK_MODULES],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
+AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
+
+pkg_failed=no
+AC_MSG_CHECKING([for $1])
+
+_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
+_PKG_CONFIG([$1][_LIBS], [libs], [$2])
+
+m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
+and $1[]_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.])
+
+if test $pkg_failed = yes; then
+   	AC_MSG_RESULT([no])
+        _PKG_SHORT_ERRORS_SUPPORTED
+        if test $_pkg_short_errors_supported = yes; then
+	        $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
+        else 
+	        $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
+
+	m4_default([$4], [AC_MSG_ERROR(
+[Package requirements ($2) were not met:
+
+$$1_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+_PKG_TEXT])[]dnl
+        ])
+elif test $pkg_failed = untried; then
+     	AC_MSG_RESULT([no])
+	m4_default([$4], [AC_MSG_FAILURE(
+[The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+_PKG_TEXT
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
+        ])
+else
+	$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
+	$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+        AC_MSG_RESULT([yes])
+	$3
+fi[]dnl
+])dnl PKG_CHECK_MODULES
+
+
+dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+dnl   [ACTION-IF-NOT-FOUND])
+dnl ---------------------------------------------------------------------
+dnl Since: 0.29
+dnl
+dnl Checks for existence of MODULES and gathers its build flags with
+dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags
+dnl and VARIABLE-PREFIX_LIBS from --libs.
+dnl
+dnl Note that if there is a possibility the first call to
+dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to
+dnl include an explicit call to PKG_PROG_PKG_CONFIG in your
+dnl configure.ac.
+AC_DEFUN([PKG_CHECK_MODULES_STATIC],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+_save_PKG_CONFIG=$PKG_CONFIG
+PKG_CONFIG="$PKG_CONFIG --static"
+PKG_CHECK_MODULES($@)
+PKG_CONFIG=$_save_PKG_CONFIG[]dnl
+])dnl PKG_CHECK_MODULES_STATIC
+
+
+dnl PKG_INSTALLDIR([DIRECTORY])
+dnl -------------------------
+dnl Since: 0.27
+dnl
+dnl Substitutes the variable pkgconfigdir as the location where a module
+dnl should install pkg-config .pc files. By default the directory is
+dnl $libdir/pkgconfig, but the default can be changed by passing
+dnl DIRECTORY. The user can override through the --with-pkgconfigdir
+dnl parameter.
+AC_DEFUN([PKG_INSTALLDIR],
+[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+    [pkg-config installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([pkgconfigdir],
+    [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],,
+    [with_pkgconfigdir=]pkg_default)
+AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+])dnl PKG_INSTALLDIR
+
+
+dnl PKG_NOARCH_INSTALLDIR([DIRECTORY])
+dnl --------------------------------
+dnl Since: 0.27
+dnl
+dnl Substitutes the variable noarch_pkgconfigdir as the location where a
+dnl module should install arch-independent pkg-config .pc files. By
+dnl default the directory is $datadir/pkgconfig, but the default can be
+dnl changed by passing DIRECTORY. The user can override through the
+dnl --with-noarch-pkgconfigdir parameter.
+AC_DEFUN([PKG_NOARCH_INSTALLDIR],
+[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+    [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([noarch-pkgconfigdir],
+    [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],,
+    [with_noarch_pkgconfigdir=]pkg_default)
+AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+])dnl PKG_NOARCH_INSTALLDIR
+
+
+dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
+dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+dnl -------------------------------------------
+dnl Since: 0.28
+dnl
+dnl Retrieves the value of the pkg-config variable for the given module.
+AC_DEFUN([PKG_CHECK_VAR],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
+
+_PKG_CONFIG([$1], [variable="][$3]["], [$2])
+AS_VAR_COPY([$1], [pkg_cv_][$1])
+
+AS_VAR_IF([$1], [""], [$5], [$4])dnl
+])dnl PKG_CHECK_VAR
Index: configure.ac
===================================================================
--- configure.ac	(revision 240829)
+++ configure.ac	(working copy)
@@ -29,6 +29,7 @@
 m4_include([ltversion.m4])
 m4_include([lt~obsolete.m4])
 m4_include([config/isl.m4])
+m4_include([config/pkg.m4])
 
 AC_INIT(move-if-change)
 AC_PREREQ(2.64)
@@ -161,7 +162,6 @@
 		target-libssp \
 		target-libquadmath \
 		target-libgfortran \
-		target-boehm-gc \
 		target-libffi \
 		target-libobjc \
 		target-libada \
@@ -2060,23 +2060,15 @@
 [AS_HELP_STRING([--enable-objc-gc],
 		[enable use of Boehm's garbage collector with the
 		 GNU Objective-C runtime])],
-[case ,${enable_languages},:${enable_objc_gc}:${noconfigdirs} in
-  *,objc,*:*:yes:*target-boehm-gc*)
-    AC_MSG_ERROR([Boehm's garbage collector was requested yet not supported in this configuration])
+[AC_MSG_CHECKING([for Boehm's garbage collector])
+ case ,${enable_languages},:${enable_objc_gc} in
+  *,objc,*:yes)
+    PKG_CHECK_EXISTS(bdw-gc,
+      AC_MSG_RESULT([found]),
+      AC_MSG_ERROR([bdw-gc pkg-config module not found]))
     ;;
 esac])
 
-# Make sure we only build Boehm's garbage collector if required.
-case ,${enable_languages},:${enable_objc_gc} in
-  *,objc,*:yes)
-    # Keep target-boehm-gc if requested for Objective-C.
-    ;;
-  *)
-    # Otherwise remove target-boehm-gc.
-    noconfigdirs="$noconfigdirs target-boehm-gc"
-    ;;
-esac
-
 # Disable libcilkrts, libitm, libsanitizer, libvtv, liboffloadmic if we're not building C++
 case ,${enable_languages}, in
   *,c++,*)
Index: libobjc/Makefile.in
===================================================================
--- libobjc/Makefile.in	(revision 240829)
+++ libobjc/Makefile.in	(working copy)
@@ -47,8 +47,6 @@
 
 top_builddir = .
 
--include ../boehm-gc/threads.mk
-
 libdir = $(exec_prefix)/lib
 libsubdir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)
 
@@ -95,7 +93,7 @@
 OBJC_GCFLAGS=@OBJC_GCFLAGS@
 OBJC_BOEHM_GC=@OBJC_BOEHM_GC@
 OBJC_BOEHM_GC_INCLUDES=@OBJC_BOEHM_GC_INCLUDES@
-OBJC_BOEHM_GC_LIBS=../boehm-gc/libgcjgc_convenience.la $(thread_libs_and_flags)
+OBJC_BOEHM_GC_LIBS=@OBJC_BOEHM_GC_LIBS@
 
 INCLUDES = -I$(srcdir)/$(MULTISRCTOP)../gcc \
   -I$(srcdir)/$(MULTISRCTOP)../gcc/config \
Index: libobjc/configure.ac
===================================================================
--- libobjc/configure.ac	(revision 240829)
+++ libobjc/configure.ac	(working copy)
@@ -18,6 +18,8 @@
 #along with GCC; see the file COPYING3.  If not see
 #<http://www.gnu.org/licenses/>.
 
+m4_include([../config/pkg.m4])
+
 AC_PREREQ(2.64)
 AC_INIT(package-unused, version-unused,, libobjc)
 AC_CONFIG_SRCDIR([objc/objc.h])
@@ -57,26 +59,6 @@
 [version_specific_libs=no])
 AC_MSG_RESULT($version_specific_libs)
 
-AC_ARG_ENABLE(objc-gc,
-[  --enable-objc-gc       enable the use of Boehm's garbage collector with
-                          the GNU Objective-C runtime.],
-[case $enable_objc_gc in
-  no)
-    OBJC_GCFLAGS=''
-    OBJC_BOEHM_GC=''
-    OBJC_BOEHM_GC_INCLUDES=''
-    ;;
-  *)
-    OBJC_GCFLAGS='-DOBJC_WITH_GC=1'
-    OBJC_BOEHM_GC='libobjc_gc$(libsuffix).la'
-    OBJC_BOEHM_GC_INCLUDES='-I$(top_srcdir)/../boehm-gc/include -I../boehm-gc/include'
-    ;;
-esac],
-[OBJC_GCFLAGS=''; OBJC_BOEHM_GC=''; OBJC_BOEHM_GC_INCLUDES=''])
-AC_SUBST(OBJC_GCFLAGS)
-AC_SUBST(OBJC_BOEHM_GC)
-AC_SUBST(OBJC_BOEHM_GC_INCLUDES)
-
 # -----------
 # Directories
 # -----------
@@ -214,6 +196,38 @@
 
 gt_BITFIELD_TYPE_MATTERS
 
+# -----------
+# boehm-gc
+# -----------
+
+AC_ARG_ENABLE(objc-gc,
+[  --enable-objc-gc       enable the use of Boehm's garbage collector with
+                          the GNU Objective-C runtime.],
+[case $enable_objc_gc in
+  no)
+    OBJC_GCFLAGS=''
+    OBJC_BOEHM_GC=''
+    OBJC_BOEHM_GC_INCLUDES=''
+    OBJC_BOEHM_GC_LIBS=''
+    ;;
+  *)
+    PKG_CHECK_MODULES(BDW_GC, bdw-gc >= 7)
+    AC_CHECK_LIB(gc, GC_init, [
+      OBJC_GCFLAGS='-DOBJC_WITH_GC=1'
+      OBJC_BOEHM_GC='libobjc_gc$(libsuffix).la'
+      OBJC_BOEHM_GC_INCLUDES=$BDW_GC_CFLAGS
+      OBJC_BOEHM_GC_LIBS=$BDW_GC_LIBS
+    ],[
+      : dnl no libgc for multilib variants available
+    ])
+    ;;
+esac],
+[OBJC_GCFLAGS=''; OBJC_BOEHM_GC=''; OBJC_BOEHM_GC_LIBS=''; OBJC_BOEHM_GC_INCLUDES=''])
+AC_SUBST(OBJC_GCFLAGS)
+AC_SUBST(OBJC_BOEHM_GC)
+AC_SUBST(OBJC_BOEHM_GC_INCLUDES)
+AC_SUBST(OBJC_BOEHM_GC_LIBS)
+
 # ------
 # Output
 # ------
Index: libobjc/gc.c
===================================================================
--- libobjc/gc.c	(revision 240829)
+++ libobjc/gc.c	(working copy)
@@ -36,7 +36,7 @@
 #include "objc/runtime.h"
 #include "objc-private/module-abi-8.h"
 
-#include <gc.h>
+#include <gc/gc.h>
 #include <limits.h>
 
 /* gc_typed.h uses the following but doesn't declare them */
@@ -44,7 +44,7 @@
 typedef GC_signed_word signed_word;
 #define BITS_PER_WORD (CHAR_BIT * sizeof (word))
 
-#include <gc_typed.h>
+#include <gc/gc_typed.h>
 
 /* The following functions set up in `mask` the corresponding pointers.
    The offset is incremented with the size of the type.  */
Index: libobjc/memory.c
===================================================================
--- libobjc/memory.c	(revision 240829)
+++ libobjc/memory.c	(working copy)
@@ -41,7 +41,7 @@
 #include "objc/runtime.h"
 
 #if OBJC_WITH_GC
-#include <gc.h>
+#include <gc/gc.h>
 
 void *
 objc_malloc (size_t size)
Index: libobjc/objects.c
===================================================================
--- libobjc/objects.c	(revision 240829)
+++ libobjc/objects.c	(working copy)
@@ -31,8 +31,8 @@
 #include <string.h>                     /* For memcpy()  */
 
 #if OBJC_WITH_GC
-# include <gc.h>
-# include <gc_typed.h>
+# include <gc/gc.h>
+# include <gc/gc_typed.h>
 #endif
 
 /* FIXME: The semantics of extraBytes are not really clear.  */

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-10-04 18:40         ` Iain Sandoe
@ 2016-10-05 16:28           ` Jeff Law
       [not found]             ` <2b5de569-1efd-f407-49c2-c9fa84cc5315@ubuntu.com>
  0 siblings, 1 reply; 60+ messages in thread
From: Jeff Law @ 2016-10-05 16:28 UTC (permalink / raw)
  To: Iain Sandoe, Rainer Orth
  Cc: Andrew Haley, Matthias Klose, GCC Patches, GCJ-patches, Mike Stump

On 10/04/2016 12:39 PM, Iain Sandoe wrote:
>>
>> I don't know who wants to review it, but if people want me to, Ok.  The idea is that if ObjC is the last remaining user in tree for boehm-gc, then reasonably I'm the last man standing.  Of course, if others want to review approve the patch, I'm fine with that.
>>
>> I'm fine with patches to externalize boehm-gc if people want to push that direction.
>
> +1
Works for me as well, particularly since we've been horrible at updating 
boehm-gc.  I think the in-tree version is something like 10 years old at 
this point -- and there's been over a dozen upstream releases since we 
last sync'd.

Jeff

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-10-04 17:23       ` Mike Stump
  2016-10-04 17:25         ` Andrew Pinski
@ 2016-10-04 18:40         ` Iain Sandoe
  2016-10-05 16:28           ` Jeff Law
  1 sibling, 1 reply; 60+ messages in thread
From: Iain Sandoe @ 2016-10-04 18:40 UTC (permalink / raw)
  To: Rainer Orth
  Cc: Andrew Haley, Matthias Klose, GCC Patches, GCJ-patches, Mike Stump


> On 4 Oct 2016, at 18:23, Mike Stump <mikestump@comcast.net> wrote:
> 
> On Oct 4, 2016, at 1:41 AM, Andrew Haley <aph@redhat.com> wrote:
>> 
>> On 04/10/16 09:39, Rainer Orth wrote:
>>> Hi Matthias,
>>> 
>>>> On 05.09.2016 17:13, Andrew Haley wrote:
>>>>> As discussed.  I think I should ask a Global reviewer to approve this
>>>>> one.  For obvious reasons I haven't included the diffs to the deleted
>>>>> gcc/java and libjava directories.  The whole tree, post GCJ-deletion,
>>>>> is at svn+ssh://gcc.gnu.org/svn/gcc/branches/gcj/gcj-deletion-branch
>>>>> if anyone would like to try it.
>>>> 
>>>> still breaks bootstraps when configured with --enable-objc-gc.
>>>> 
>>>> the immediate step should be to fix the bootstrap failure, as an additional step
>>>> to remove boehm-gc from the gcc sources and be able to use an external boehm-gc.
>>> 
>>> the first part is handled by my unreviewed patch
>>> 
>>> 	https://gcc.gnu.org/ml/gcc-patches/2016-09/msg02437.html
>> 
>> Looks obvious to me, fixes bootstrap.  I think no-one will complain
>> if you check it in.
> 
> I don't know who wants to review it, but if people want me to, Ok.  The idea is that if ObjC is the last remaining user in tree for boehm-gc, then reasonably I'm the last man standing.  Of course, if others want to review approve the patch, I'm fine with that.  
> 
> I'm fine with patches to externalize boehm-gc if people want to push that direction.

+1

Iain

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-10-04 17:23       ` Mike Stump
@ 2016-10-04 17:25         ` Andrew Pinski
  2016-10-04 18:40         ` Iain Sandoe
  1 sibling, 0 replies; 60+ messages in thread
From: Andrew Pinski @ 2016-10-04 17:25 UTC (permalink / raw)
  To: Mike Stump
  Cc: Andrew Haley, Rainer Orth, Matthias Klose, GCC Patches, GCJ-patches

On Tue, Oct 4, 2016 at 10:23 AM, Mike Stump <mikestump@comcast.net> wrote:
> On Oct 4, 2016, at 1:41 AM, Andrew Haley <aph@redhat.com> wrote:
>>
>> On 04/10/16 09:39, Rainer Orth wrote:
>>> Hi Matthias,
>>>
>>>> On 05.09.2016 17:13, Andrew Haley wrote:
>>>>> As discussed.  I think I should ask a Global reviewer to approve this
>>>>> one.  For obvious reasons I haven't included the diffs to the deleted
>>>>> gcc/java and libjava directories.  The whole tree, post GCJ-deletion,
>>>>> is at svn+ssh://gcc.gnu.org/svn/gcc/branches/gcj/gcj-deletion-branch
>>>>> if anyone would like to try it.
>>>>
>>>> still breaks bootstraps when configured with --enable-objc-gc.
>>>>
>>>> the immediate step should be to fix the bootstrap failure, as an additional step
>>>> to remove boehm-gc from the gcc sources and be able to use an external boehm-gc.
>>>
>>> the first part is handled by my unreviewed patch
>>>
>>>      https://gcc.gnu.org/ml/gcc-patches/2016-09/msg02437.html
>>
>> Looks obvious to me, fixes bootstrap.  I think no-one will complain
>> if you check it in.
>
> I don't know who wants to review it, but if people want me to, Ok.  The idea is that if ObjC is the last remaining user in tree for boehm-gc, then reasonably I'm the last man standing.  Of course, if others want to review approve the patch, I'm fine with that.

From a runtime maintainer position, I am also fine with this patch.

>
> I'm fine with patches to externalize boehm-gc if people want to push that direction.

I am also ok with that too.

Thanks,
Andrew


>

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-10-04  8:41     ` Andrew Haley
@ 2016-10-04 17:23       ` Mike Stump
  2016-10-04 17:25         ` Andrew Pinski
  2016-10-04 18:40         ` Iain Sandoe
  0 siblings, 2 replies; 60+ messages in thread
From: Mike Stump @ 2016-10-04 17:23 UTC (permalink / raw)
  To: Andrew Haley; +Cc: Rainer Orth, Matthias Klose, GCC Patches, GCJ-patches

On Oct 4, 2016, at 1:41 AM, Andrew Haley <aph@redhat.com> wrote:
> 
> On 04/10/16 09:39, Rainer Orth wrote:
>> Hi Matthias,
>> 
>>> On 05.09.2016 17:13, Andrew Haley wrote:
>>>> As discussed.  I think I should ask a Global reviewer to approve this
>>>> one.  For obvious reasons I haven't included the diffs to the deleted
>>>> gcc/java and libjava directories.  The whole tree, post GCJ-deletion,
>>>> is at svn+ssh://gcc.gnu.org/svn/gcc/branches/gcj/gcj-deletion-branch
>>>> if anyone would like to try it.
>>> 
>>> still breaks bootstraps when configured with --enable-objc-gc.
>>> 
>>> the immediate step should be to fix the bootstrap failure, as an additional step
>>> to remove boehm-gc from the gcc sources and be able to use an external boehm-gc.
>> 
>> the first part is handled by my unreviewed patch
>> 
>> 	https://gcc.gnu.org/ml/gcc-patches/2016-09/msg02437.html
> 
> Looks obvious to me, fixes bootstrap.  I think no-one will complain
> if you check it in.

I don't know who wants to review it, but if people want me to, Ok.  The idea is that if ObjC is the last remaining user in tree for boehm-gc, then reasonably I'm the last man standing.  Of course, if others want to review approve the patch, I'm fine with that.  

I'm fine with patches to externalize boehm-gc if people want to push that direction.

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-10-04  8:40   ` Rainer Orth
@ 2016-10-04  8:41     ` Andrew Haley
  2016-10-04 17:23       ` Mike Stump
  0 siblings, 1 reply; 60+ messages in thread
From: Andrew Haley @ 2016-10-04  8:41 UTC (permalink / raw)
  To: Rainer Orth, Matthias Klose; +Cc: GCC Patches, GCJ-patches

On 04/10/16 09:39, Rainer Orth wrote:
> Hi Matthias,
> 
>> On 05.09.2016 17:13, Andrew Haley wrote:
>>> As discussed.  I think I should ask a Global reviewer to approve this
>>> one.  For obvious reasons I haven't included the diffs to the deleted
>>> gcc/java and libjava directories.  The whole tree, post GCJ-deletion,
>>> is at svn+ssh://gcc.gnu.org/svn/gcc/branches/gcj/gcj-deletion-branch
>>> if anyone would like to try it.
>>
>> still breaks bootstraps when configured with --enable-objc-gc.
>>
>> the immediate step should be to fix the bootstrap failure, as an additional step
>> to remove boehm-gc from the gcc sources and be able to use an external boehm-gc.
> 
> the first part is handled by my unreviewed patch
> 
> 	https://gcc.gnu.org/ml/gcc-patches/2016-09/msg02437.html

Looks obvious to me, fixes bootstrap.  I think no-one will complain
if you check it in.

Andrew.


^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-10-03 23:12 ` Matthias Klose
@ 2016-10-04  8:40   ` Rainer Orth
  2016-10-04  8:41     ` Andrew Haley
  0 siblings, 1 reply; 60+ messages in thread
From: Rainer Orth @ 2016-10-04  8:40 UTC (permalink / raw)
  To: Matthias Klose; +Cc: Andrew Haley, GCC Patches, GCJ-patches

Hi Matthias,

> On 05.09.2016 17:13, Andrew Haley wrote:
>> As discussed.  I think I should ask a Global reviewer to approve this
>> one.  For obvious reasons I haven't included the diffs to the deleted
>> gcc/java and libjava directories.  The whole tree, post GCJ-deletion,
>> is at svn+ssh://gcc.gnu.org/svn/gcc/branches/gcj/gcj-deletion-branch
>> if anyone would like to try it.
>
> still breaks bootstraps when configured with --enable-objc-gc.
>
> the immediate step should be to fix the bootstrap failure, as an additional step
> to remove boehm-gc from the gcc sources and be able to use an external boehm-gc.

the first part is handled by my unreviewed patch

	https://gcc.gnu.org/ml/gcc-patches/2016-09/msg02437.html

	Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-09-05 15:13 Andrew Haley
                   ` (4 preceding siblings ...)
  2016-09-10 12:00 ` NightStrike
@ 2016-10-03 23:12 ` Matthias Klose
  2016-10-04  8:40   ` Rainer Orth
  5 siblings, 1 reply; 60+ messages in thread
From: Matthias Klose @ 2016-10-03 23:12 UTC (permalink / raw)
  To: Andrew Haley, GCC Patches, GCJ-patches

On 05.09.2016 17:13, Andrew Haley wrote:
> As discussed.  I think I should ask a Global reviewer to approve this
> one.  For obvious reasons I haven't included the diffs to the deleted
> gcc/java and libjava directories.  The whole tree, post GCJ-deletion,
> is at svn+ssh://gcc.gnu.org/svn/gcc/branches/gcj/gcj-deletion-branch
> if anyone would like to try it.
> 
> Andrew.
> 

still breaks bootstraps when configured with --enable-objc-gc.

the immediate step should be to fix the bootstrap failure, as an additional step
to remove boehm-gc from the gcc sources and be able to use an external boehm-gc.

Thanks, Matthias

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-09-05 16:26 ` Gerald Pfeifer
  2016-09-05 16:30   ` Andrew Haley
  2016-09-05 18:40   ` Eric Gallager
@ 2016-09-30 15:34   ` Andrew Haley
  2017-01-22 16:51     ` Gerald Pfeifer
  2017-01-22 18:36     ` Gerald Pfeifer
  2 siblings, 2 replies; 60+ messages in thread
From: Andrew Haley @ 2016-09-30 15:34 UTC (permalink / raw)
  To: Gerald Pfeifer; +Cc: GCC Patches, GCJ-patches

On 05/09/16 17:25, Gerald Pfeifer wrote:
> And here is the patch for the web pages.
> 
> Note I did not include all the removed java/* contents.  Is there
> anything particular you'd like to retain there?

No, please delete it all.

Thanks,

Andrew.

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-09-11  8:25   ` Andrew Haley
@ 2016-09-19 15:26     ` Andrew Hughes
  0 siblings, 0 replies; 60+ messages in thread
From: Andrew Hughes @ 2016-09-19 15:26 UTC (permalink / raw)
  To: Andrew Haley; +Cc: java-patches



----- Original Message -----
> On 10/09/16 12:59, NightStrike wrote:
> > Could we at least reach out and see if there's someone else who could
> > be the maintainer?  I noticed gcj patches recently, so there's still
> > interest.
> 
> 1.  It's too late.  We have been discussing this for a long time, and
> we're now doing what we decided.
> 
> 2.  Maintaining GCJ requires a lot of knowledge of both Java and GCC
> internals.  There are very few people in the world with that
> knowledge, and I'm fairly sure I know them by name.
> 

+1.

> 3.  The Classpath library is very old and is unmaintained.  The only
> practical way to update GCJ would be to use the OpenJDK class
> libraries instead, but updating GCJ to use those class libraries is a
> very substantial job.
> 

Classpath is not "unmaintained"; we still fix issues which arise during
bootstrapping IcedTea, for example. Rather, it's an example of the lack
of interesting in updating GCJ that no-one has even merged the most
recent GNU Classpath changes into the GCJ codebase, never mind switching
it to a completely different class library.

If someone is genuinely interested in reviving GCJ, the code will always
be there in the history of the GCC codebase. Keeping around unmaintained
code makes life harder for other GCC developers who work on other parts
of the project.
-- 
Andrew :)

Senior Free Java Software Engineer
Red Hat, Inc. (http://www.redhat.com)

PGP Key: ed25519/0xCFDA0F9B35964222 (hkp://keys.gnupg.net)
Fingerprint = 5132 579D D154 0ED2 3E04  C5A0 CFDA 0F9B 3596 4222


^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-09-10 12:00 ` NightStrike
@ 2016-09-11  8:25   ` Andrew Haley
  2016-09-19 15:26     ` Andrew Hughes
  0 siblings, 1 reply; 60+ messages in thread
From: Andrew Haley @ 2016-09-11  8:25 UTC (permalink / raw)
  To: java-patches

On 10/09/16 12:59, NightStrike wrote:
> Could we at least reach out and see if there's someone else who could
> be the maintainer?  I noticed gcj patches recently, so there's still
> interest.

1.  It's too late.  We have been discussing this for a long time, and
we're now doing what we decided.

2.  Maintaining GCJ requires a lot of knowledge of both Java and GCC
internals.  There are very few people in the world with that
knowledge, and I'm fairly sure I know them by name.

3.  The Classpath library is very old and is unmaintained.  The only
practical way to update GCJ would be to use the OpenJDK class
libraries instead, but updating GCJ to use those class libraries is a
very substantial job.

So, I cannot prevent anyone from coming along to maintain GCJ, and
neither would I want to.  However, such a proposal would have to be
credible.  It is a multi-engineer-year commitment, and not just any
ordinary engineers.

Andrew.

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-09-05 15:13 Andrew Haley
                   ` (3 preceding siblings ...)
  2016-09-05 16:26 ` Gerald Pfeifer
@ 2016-09-10 12:00 ` NightStrike
  2016-09-11  8:25   ` Andrew Haley
  2016-10-03 23:12 ` Matthias Klose
  5 siblings, 1 reply; 60+ messages in thread
From: NightStrike @ 2016-09-10 12:00 UTC (permalink / raw)
  To: Andrew Haley; +Cc: GCC Patches, GCJ-patches

On Mon, Sep 5, 2016 at 11:13 AM, Andrew Haley <aph@redhat.com> wrote:
> As discussed.  I think I should ask a Global reviewer to approve this
> one.  For obvious reasons I haven't included the diffs to the deleted
> gcc/java and libjava directories.  The whole tree, post GCJ-deletion,
> is at svn+ssh://gcc.gnu.org/svn/gcc/branches/gcj/gcj-deletion-branch
> if anyone would like to try it.
>
> Andrew.

For what little (to nothing) it's worth, I still use gcj, and I like
the ease of adding small bits of java to a project without involving
additional compilers.  It optimizes extremely well, is easy to use,
and adds to the completeness of the GNU Compiler *Collection*.

Could we at least reach out and see if there's someone else who could
be the maintainer?  I noticed gcj patches recently, so there's still
interest.

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-09-06  9:06     ` Richard Biener
  2016-09-06  9:08       ` Jakub Jelinek
@ 2016-09-09 11:03       ` Ian Lance Taylor
  1 sibling, 0 replies; 60+ messages in thread
From: Ian Lance Taylor @ 2016-09-09 11:03 UTC (permalink / raw)
  To: Richard Biener; +Cc: Andrew Haley, GCC Patches, GCJ-patches

On Tue, Sep 6, 2016 at 2:06 AM, Richard Biener
<richard.guenther@gmail.com> wrote:
> On Mon, Sep 5, 2016 at 6:17 PM, Andrew Haley <aph@redhat.com> wrote:
>> On 05/09/16 17:15, Richard Biener wrote:
>>> On September 5, 2016 5:13:06 PM GMT+02:00, Andrew Haley <aph@redhat.com> wrote:
>>>> As discussed.  I think I should ask a Global reviewer to approve this
>>>> one.  For obvious reasons I haven't included the diffs to the deleted
>>>> gcc/java and libjava directories.  The whole tree, post GCJ-deletion,
>>>> is at svn+ssh://gcc.gnu.org/svn/gcc/branches/gcj/gcj-deletion-branch
>>>> if anyone would like to try it.
>>>
>>> Isn't there also java specific C++ frontend parts?
>>
>> There certainly are, but deleting them without breaking anything else
>> is going to be rather delicate.  I'm trying to do this one step at a
>> time, rather cautiously.
>
> Ok, that sounds reasonable.
>
> You have my approval for this first part then.  Please wait until after the
> GNU Cauldron to allow other global reviewers to object.

I am fine with this.  It seems like the right move, alas.

Ian

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-09-06 21:18         ` Jeff Law
@ 2016-09-07 11:41           ` Richard Earnshaw (lists)
  0 siblings, 0 replies; 60+ messages in thread
From: Richard Earnshaw (lists) @ 2016-09-07 11:41 UTC (permalink / raw)
  To: Jeff Law, Jakub Jelinek, Richard Biener
  Cc: Andrew Haley, GCC Patches, GCJ-patches

On 06/09/16 22:17, Jeff Law wrote:
> On 09/06/2016 03:08 AM, Jakub Jelinek wrote:
>> On Tue, Sep 06, 2016 at 11:06:36AM +0200, Richard Biener wrote:
>>> On Mon, Sep 5, 2016 at 6:17 PM, Andrew Haley <aph@redhat.com> wrote:
>>>> On 05/09/16 17:15, Richard Biener wrote:
>>>>> On September 5, 2016 5:13:06 PM GMT+02:00, Andrew Haley
>>>>> <aph@redhat.com> wrote:
>>>>>> As discussed.  I think I should ask a Global reviewer to approve this
>>>>>> one.  For obvious reasons I haven't included the diffs to the deleted
>>>>>> gcc/java and libjava directories.  The whole tree, post GCJ-deletion,
>>>>>> is at svn+ssh://gcc.gnu.org/svn/gcc/branches/gcj/gcj-deletion-branch
>>>>>> if anyone would like to try it.
>>>>>
>>>>> Isn't there also java specific C++ frontend parts?
>>>>
>>>> There certainly are, but deleting them without breaking anything else
>>>> is going to be rather delicate.  I'm trying to do this one step at a
>>>> time, rather cautiously.
>>>
>>> Ok, that sounds reasonable.
>>>
>>> You have my approval for this first part then.  Please wait until
>>> after the
>>> GNU Cauldron to allow other global reviewers to object.
>>
>> No objection from me.
> No objection from me either (I'm guessing that's not a surprise).
> 

Nor from me.

R.

> jeff

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-09-06  9:08       ` Jakub Jelinek
@ 2016-09-06 21:18         ` Jeff Law
  2016-09-07 11:41           ` Richard Earnshaw (lists)
  0 siblings, 1 reply; 60+ messages in thread
From: Jeff Law @ 2016-09-06 21:18 UTC (permalink / raw)
  To: Jakub Jelinek, Richard Biener; +Cc: Andrew Haley, GCC Patches, GCJ-patches

On 09/06/2016 03:08 AM, Jakub Jelinek wrote:
> On Tue, Sep 06, 2016 at 11:06:36AM +0200, Richard Biener wrote:
>> On Mon, Sep 5, 2016 at 6:17 PM, Andrew Haley <aph@redhat.com> wrote:
>>> On 05/09/16 17:15, Richard Biener wrote:
>>>> On September 5, 2016 5:13:06 PM GMT+02:00, Andrew Haley <aph@redhat.com> wrote:
>>>>> As discussed.  I think I should ask a Global reviewer to approve this
>>>>> one.  For obvious reasons I haven't included the diffs to the deleted
>>>>> gcc/java and libjava directories.  The whole tree, post GCJ-deletion,
>>>>> is at svn+ssh://gcc.gnu.org/svn/gcc/branches/gcj/gcj-deletion-branch
>>>>> if anyone would like to try it.
>>>>
>>>> Isn't there also java specific C++ frontend parts?
>>>
>>> There certainly are, but deleting them without breaking anything else
>>> is going to be rather delicate.  I'm trying to do this one step at a
>>> time, rather cautiously.
>>
>> Ok, that sounds reasonable.
>>
>> You have my approval for this first part then.  Please wait until after the
>> GNU Cauldron to allow other global reviewers to object.
>
> No objection from me.
No objection from me either (I'm guessing that's not a surprise).

jeff

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-09-06  9:06     ` Richard Biener
@ 2016-09-06  9:08       ` Jakub Jelinek
  2016-09-06 21:18         ` Jeff Law
  2016-09-09 11:03       ` Ian Lance Taylor
  1 sibling, 1 reply; 60+ messages in thread
From: Jakub Jelinek @ 2016-09-06  9:08 UTC (permalink / raw)
  To: Richard Biener; +Cc: Andrew Haley, GCC Patches, GCJ-patches

On Tue, Sep 06, 2016 at 11:06:36AM +0200, Richard Biener wrote:
> On Mon, Sep 5, 2016 at 6:17 PM, Andrew Haley <aph@redhat.com> wrote:
> > On 05/09/16 17:15, Richard Biener wrote:
> >> On September 5, 2016 5:13:06 PM GMT+02:00, Andrew Haley <aph@redhat.com> wrote:
> >>> As discussed.  I think I should ask a Global reviewer to approve this
> >>> one.  For obvious reasons I haven't included the diffs to the deleted
> >>> gcc/java and libjava directories.  The whole tree, post GCJ-deletion,
> >>> is at svn+ssh://gcc.gnu.org/svn/gcc/branches/gcj/gcj-deletion-branch
> >>> if anyone would like to try it.
> >>
> >> Isn't there also java specific C++ frontend parts?
> >
> > There certainly are, but deleting them without breaking anything else
> > is going to be rather delicate.  I'm trying to do this one step at a
> > time, rather cautiously.
> 
> Ok, that sounds reasonable.
> 
> You have my approval for this first part then.  Please wait until after the
> GNU Cauldron to allow other global reviewers to object.

No objection from me.

	Jakub

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-09-05 16:17   ` Andrew Haley
@ 2016-09-06  9:06     ` Richard Biener
  2016-09-06  9:08       ` Jakub Jelinek
  2016-09-09 11:03       ` Ian Lance Taylor
  0 siblings, 2 replies; 60+ messages in thread
From: Richard Biener @ 2016-09-06  9:06 UTC (permalink / raw)
  To: Andrew Haley; +Cc: GCC Patches, GCJ-patches

On Mon, Sep 5, 2016 at 6:17 PM, Andrew Haley <aph@redhat.com> wrote:
> On 05/09/16 17:15, Richard Biener wrote:
>> On September 5, 2016 5:13:06 PM GMT+02:00, Andrew Haley <aph@redhat.com> wrote:
>>> As discussed.  I think I should ask a Global reviewer to approve this
>>> one.  For obvious reasons I haven't included the diffs to the deleted
>>> gcc/java and libjava directories.  The whole tree, post GCJ-deletion,
>>> is at svn+ssh://gcc.gnu.org/svn/gcc/branches/gcj/gcj-deletion-branch
>>> if anyone would like to try it.
>>
>> Isn't there also java specific C++ frontend parts?
>
> There certainly are, but deleting them without breaking anything else
> is going to be rather delicate.  I'm trying to do this one step at a
> time, rather cautiously.

Ok, that sounds reasonable.

You have my approval for this first part then.  Please wait until after the
GNU Cauldron to allow other global reviewers to object.

Thanks,
Richard.

> Andrew.

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-09-05 18:37   ` Eric Gallager
@ 2016-09-05 18:47     ` Andrew Haley
  0 siblings, 0 replies; 60+ messages in thread
From: Andrew Haley @ 2016-09-05 18:47 UTC (permalink / raw)
  To: java-patches

On 05/09/16 19:37, Eric Gallager wrote:
> How about a compromise to have it be downloaded with the
> contrib/download_prerequisites script, instead of entirely keeping it,
> or entirely deleting it?

We could do that.  At least we wouldn't have to keep updating
it.  Do you intend to submit a patch?

Andrew.

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-09-05 16:26 ` Gerald Pfeifer
  2016-09-05 16:30   ` Andrew Haley
@ 2016-09-05 18:40   ` Eric Gallager
  2016-09-30 15:34   ` Andrew Haley
  2 siblings, 0 replies; 60+ messages in thread
From: Eric Gallager @ 2016-09-05 18:40 UTC (permalink / raw)
  To: Gerald Pfeifer; +Cc: Andrew Haley, GCC Patches, GCJ-patches

On 9/5/16, Gerald Pfeifer <gerald@pfeifer.com> wrote:
> On Mon, 5 Sep 2016, Andrew Haley wrote:
>> As discussed.  I think I should ask a Global reviewer to approve this
>> one.  For obvious reasons I haven't included the diffs to the deleted
>> gcc/java and libjava directories.  The whole tree, post GCJ-deletion,
>> is at svn+ssh://gcc.gnu.org/svn/gcc/branches/gcj/gcj-deletion-branch
>> if anyone would like to try it.
>
> And here is the patch for the web pages.
>
> Note I did not include all the removed java/* contents.  Is there
> anything particular you'd like to retain there?
>
> Gerald
>
> Index: index.html
> ===================================================================
> RCS file: /cvs/gcc/wwwdocs/htdocs/index.html,v
> retrieving revision 1.1026
> diff -u -r1.1026 index.html
> --- index.html	25 Aug 2016 10:55:41 -0000	1.1026
> +++ index.html	5 Sep 2016 16:22:07 -0000
> @@ -15,8 +15,7 @@
>  <a href="c99status.html">C</a>,
>  <a href="projects/cxx-status.html">C++</a>,
>  Objective-C, <a href="fortran/">Fortran</a>,
> -<a href="java/">Java</a>, Ada, and Go, as well as libraries for these
> -languages (libstdc++, libgcj,...).
> +Ada, and Go, as well as libraries for these languages (libstdc++,...).
>  GCC was originally written as the compiler for the <a
>  href="http://www.gnu.org/gnu/thegnuproject.html">GNU operating system</a>.
>  The GNU system was developed to be 100% free software, free in the sense
> Index: style.mhtml
> ===================================================================
> RCS file: /cvs/gcc/wwwdocs/htdocs/style.mhtml,v
> retrieving revision 1.131
> diff -u -r1.131 style.mhtml
> --- style.mhtml	23 Aug 2016 06:49:17 -0000	1.131
> +++ style.mhtml	5 Sep 2016 16:22:08 -0000
> @@ -10,15 +10,6 @@
>    <unset-var XHTML>
>  >
>
> -;;; For the "java/" pages, we want the navigation bar.
> -
> -<if <match <get-var env::PREPROCESS_FILE> "java/[^/]*.html">
> - <group
> -  <set-var navigation>
> -  <set-var BACKPATH="../">
> - >
> ->
> -
>  ;;; Note that the <?xml...> line really needs to start in the first
> column.
>
>  <if <var-exists XHTML>
> @@ -105,26 +96,6 @@
>    <td valign="top" style="padding-left: 36px;">            <!-- nav frame
> -->
>    <table border="0" cellspacing="0" cellpadding="2" width="10em">
>
> -  <if <match <get-var env::PREPROCESS_FILE> "java/[^/]*.html">
> -   <group
> -    <tr><td><table class="navitem" cellspacing="0" width="100%">
> -    <tr><td align="center" valign="middle">
> -    <img src="gcj.jpg" alt="GCJ" width="136" height="98" />
> -    </td></tr>
> -    <tr><td>
> -    <p>
> -    <a href="index.html">GCJ Home</a><br />
> -    <a href="../">GCC Home</a><br />
> -    <a href="faq.html">FAQ</a><br />
> -    <a href="docs.html">Documentation</a><br />
> -    <a href="contrib.html">Contributing</a><br />
> -    <a href="done.html">Done with GCJ</a><br />
> -    </p>
> -    </td></tr>
> -    </table></td></tr>
> -   >
> -  >
> -
>    <tr><td><table class="navitem" cellspacing="0" width="100%">
>    <tr><td>About GCC</td></tr>
>    <tr><td>
>


I'd think something should go under the "Caveats" section of
https://gcc.gnu.org/gcc-7/changes.html
too, so people aren't surprised.
(There was never a deprecation notice in the equivalent page for GCC
6, by the way)

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-09-05 15:29 ` Matthias Klose
  2016-09-05 15:31   ` Andrew Haley
@ 2016-09-05 18:37   ` Eric Gallager
  2016-09-05 18:47     ` Andrew Haley
  1 sibling, 1 reply; 60+ messages in thread
From: Eric Gallager @ 2016-09-05 18:37 UTC (permalink / raw)
  To: Matthias Klose; +Cc: Andrew Haley, GCC Patches, GCJ-patches

On 9/5/16, Matthias Klose <doko@ubuntu.com> wrote:
> On 05.09.2016 17:13, Andrew Haley wrote:
>> As discussed.  I think I should ask a Global reviewer to approve this
>> one.  For obvious reasons I haven't included the diffs to the deleted
>> gcc/java and libjava directories.  The whole tree, post GCJ-deletion,
>> is at svn+ssh://gcc.gnu.org/svn/gcc/branches/gcj/gcj-deletion-branch
>> if anyone would like to try it.
>>
>> Andrew.
>>
>>
>> 2016-09-05  Andrew Haley  <aph@redhat.com>
>>
>> 	* Makefile.def: Remove libjava.
>> 	* Makefile.tpl: Likewise.
>> 	* Makefile.in: Regenerate.
>> 	* configure.ac: Likewise.
>> 	* configure: Likewise.
>> 	* gcc/java: Remove.
>> 	* libjava: Likewise.
>
> Please consider removing boehm-gc as well.  The only other user is
> --enable-objc-gc, which better should use an external boehm-gc.
>
> Matthias
>
>


How about a compromise to have it be downloaded with the
contrib/download_prerequisites script, instead of entirely keeping it,
or entirely deleting it?

Eric

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-09-05 16:26 ` Gerald Pfeifer
@ 2016-09-05 16:30   ` Andrew Haley
  2016-09-05 18:40   ` Eric Gallager
  2016-09-30 15:34   ` Andrew Haley
  2 siblings, 0 replies; 60+ messages in thread
From: Andrew Haley @ 2016-09-05 16:30 UTC (permalink / raw)
  To: java-patches

On 05/09/16 17:25, Gerald Pfeifer wrote:
> Note I did not include all the removed java/* contents.  Is there
> anything particular you'd like to retain there?

No.

Thanks,

Andrew.

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-09-05 15:13 Andrew Haley
                   ` (2 preceding siblings ...)
       [not found] ` <FB08E20B-5ED1-45BA-BFA0-11E7807840D2@gmail.com>
@ 2016-09-05 16:26 ` Gerald Pfeifer
  2016-09-05 16:30   ` Andrew Haley
                     ` (2 more replies)
  2016-09-10 12:00 ` NightStrike
  2016-10-03 23:12 ` Matthias Klose
  5 siblings, 3 replies; 60+ messages in thread
From: Gerald Pfeifer @ 2016-09-05 16:26 UTC (permalink / raw)
  To: Andrew Haley; +Cc: GCC Patches, GCJ-patches

On Mon, 5 Sep 2016, Andrew Haley wrote:
> As discussed.  I think I should ask a Global reviewer to approve this
> one.  For obvious reasons I haven't included the diffs to the deleted
> gcc/java and libjava directories.  The whole tree, post GCJ-deletion,
> is at svn+ssh://gcc.gnu.org/svn/gcc/branches/gcj/gcj-deletion-branch
> if anyone would like to try it.

And here is the patch for the web pages.

Note I did not include all the removed java/* contents.  Is there
anything particular you'd like to retain there?

Gerald

Index: index.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/index.html,v
retrieving revision 1.1026
diff -u -r1.1026 index.html
--- index.html	25 Aug 2016 10:55:41 -0000	1.1026
+++ index.html	5 Sep 2016 16:22:07 -0000
@@ -15,8 +15,7 @@
 <a href="c99status.html">C</a>,
 <a href="projects/cxx-status.html">C++</a>,
 Objective-C, <a href="fortran/">Fortran</a>,
-<a href="java/">Java</a>, Ada, and Go, as well as libraries for these
-languages (libstdc++, libgcj,...).
+Ada, and Go, as well as libraries for these languages (libstdc++,...).
 GCC was originally written as the compiler for the <a
 href="http://www.gnu.org/gnu/thegnuproject.html">GNU operating system</a>.
 The GNU system was developed to be 100% free software, free in the sense
Index: style.mhtml
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/style.mhtml,v
retrieving revision 1.131
diff -u -r1.131 style.mhtml
--- style.mhtml	23 Aug 2016 06:49:17 -0000	1.131
+++ style.mhtml	5 Sep 2016 16:22:08 -0000
@@ -10,15 +10,6 @@
   <unset-var XHTML>
 >
 
-;;; For the "java/" pages, we want the navigation bar.
-
-<if <match <get-var env::PREPROCESS_FILE> "java/[^/]*.html">
- <group 
-  <set-var navigation>
-  <set-var BACKPATH="../">
- >
->
-
 ;;; Note that the <?xml...> line really needs to start in the first column.
 
 <if <var-exists XHTML>
@@ -105,26 +96,6 @@
   <td valign="top" style="padding-left: 36px;">            <!-- nav frame -->
   <table border="0" cellspacing="0" cellpadding="2" width="10em">
 
-  <if <match <get-var env::PREPROCESS_FILE> "java/[^/]*.html">
-   <group
-    <tr><td><table class="navitem" cellspacing="0" width="100%">
-    <tr><td align="center" valign="middle">
-    <img src="gcj.jpg" alt="GCJ" width="136" height="98" />
-    </td></tr>
-    <tr><td>
-    <p>
-    <a href="index.html">GCJ Home</a><br />
-    <a href="../">GCC Home</a><br />
-    <a href="faq.html">FAQ</a><br />
-    <a href="docs.html">Documentation</a><br />
-    <a href="contrib.html">Contributing</a><br />
-    <a href="done.html">Done with GCJ</a><br />
-    </p>
-    </td></tr>
-    </table></td></tr>
-   >
-  >
-
   <tr><td><table class="navitem" cellspacing="0" width="100%">
   <tr><td>About GCC</td></tr>
   <tr><td>

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
       [not found] ` <FB08E20B-5ED1-45BA-BFA0-11E7807840D2@gmail.com>
@ 2016-09-05 16:17   ` Andrew Haley
  2016-09-06  9:06     ` Richard Biener
  0 siblings, 1 reply; 60+ messages in thread
From: Andrew Haley @ 2016-09-05 16:17 UTC (permalink / raw)
  To: Richard Biener, GCC Patches, GCJ-patches

On 05/09/16 17:15, Richard Biener wrote:
> On September 5, 2016 5:13:06 PM GMT+02:00, Andrew Haley <aph@redhat.com> wrote:
>> As discussed.  I think I should ask a Global reviewer to approve this
>> one.  For obvious reasons I haven't included the diffs to the deleted
>> gcc/java and libjava directories.  The whole tree, post GCJ-deletion,
>> is at svn+ssh://gcc.gnu.org/svn/gcc/branches/gcj/gcj-deletion-branch
>> if anyone would like to try it.
> 
> Isn't there also java specific C++ frontend parts?

There certainly are, but deleting them without breaking anything else
is going to be rather delicate.  I'm trying to do this one step at a
time, rather cautiously.

Andrew.

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-09-05 15:32 ` Matthew Fortune
@ 2016-09-05 15:34   ` Andrew Haley
  0 siblings, 0 replies; 60+ messages in thread
From: Andrew Haley @ 2016-09-05 15:34 UTC (permalink / raw)
  To: java-patches

On 05/09/16 16:32, Matthew Fortune wrote:
> Andrew Haley <aph@redhat.com> writes:
>> As discussed.  I think I should ask a Global reviewer to approve this
>> one.  For obvious reasons I haven't included the diffs to the deleted
>> gcc/java and libjava directories.  The whole tree, post GCJ-deletion, is
>> at svn+ssh://gcc.gnu.org/svn/gcc/branches/gcj/gcj-deletion-branch
>> if anyone would like to try it.
> 
> I hadn't realised libjava was earmarked for removal (and I have no
> objection) but given I have an outstanding bug in libjava I wonder how
> we will deal with bug fix backports when we can't commit to trunk first?

What an interesting question.  I think you'll have to commit to
the live branches.

Andrew.


^ permalink raw reply	[flat|nested] 60+ messages in thread

* RE: [PATCH] Delete GCJ
  2016-09-05 15:13 Andrew Haley
  2016-09-05 15:29 ` Matthias Klose
@ 2016-09-05 15:32 ` Matthew Fortune
  2016-09-05 15:34   ` Andrew Haley
       [not found] ` <FB08E20B-5ED1-45BA-BFA0-11E7807840D2@gmail.com>
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 60+ messages in thread
From: Matthew Fortune @ 2016-09-05 15:32 UTC (permalink / raw)
  To: Andrew Haley, GCC Patches, GCJ-patches

Andrew Haley <aph@redhat.com> writes:
> As discussed.  I think I should ask a Global reviewer to approve this
> one.  For obvious reasons I haven't included the diffs to the deleted
> gcc/java and libjava directories.  The whole tree, post GCJ-deletion, is
> at svn+ssh://gcc.gnu.org/svn/gcc/branches/gcj/gcj-deletion-branch
> if anyone would like to try it.

I hadn't realised libjava was earmarked for removal (and I have no
objection) but given I have an outstanding bug in libjava I wonder how
we will deal with bug fix backports when we can't commit to trunk first?

Matthew

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-09-05 15:29 ` Matthias Klose
@ 2016-09-05 15:31   ` Andrew Haley
  2016-09-05 18:37   ` Eric Gallager
  1 sibling, 0 replies; 60+ messages in thread
From: Andrew Haley @ 2016-09-05 15:31 UTC (permalink / raw)
  To: Matthias Klose, GCC Patches, GCJ-patches

On 05/09/16 16:29, Matthias Klose wrote:
> Please consider removing boehm-gc as well.  The only other user is
> --enable-objc-gc, which better should use an external boehm-gc.

I can do that, but I do not want to do so with this patch.

Andrew.

^ permalink raw reply	[flat|nested] 60+ messages in thread

* Re: [PATCH] Delete GCJ
  2016-09-05 15:13 Andrew Haley
@ 2016-09-05 15:29 ` Matthias Klose
  2016-09-05 15:31   ` Andrew Haley
  2016-09-05 18:37   ` Eric Gallager
  2016-09-05 15:32 ` Matthew Fortune
                   ` (4 subsequent siblings)
  5 siblings, 2 replies; 60+ messages in thread
From: Matthias Klose @ 2016-09-05 15:29 UTC (permalink / raw)
  To: Andrew Haley, GCC Patches, GCJ-patches

On 05.09.2016 17:13, Andrew Haley wrote:
> As discussed.  I think I should ask a Global reviewer to approve this
> one.  For obvious reasons I haven't included the diffs to the deleted
> gcc/java and libjava directories.  The whole tree, post GCJ-deletion,
> is at svn+ssh://gcc.gnu.org/svn/gcc/branches/gcj/gcj-deletion-branch
> if anyone would like to try it.
> 
> Andrew.
> 
> 
> 2016-09-05  Andrew Haley  <aph@redhat.com>
> 
> 	* Makefile.def: Remove libjava.
> 	* Makefile.tpl: Likewise.
> 	* Makefile.in: Regenerate.
> 	* configure.ac: Likewise.
> 	* configure: Likewise.
> 	* gcc/java: Remove.
> 	* libjava: Likewise.

Please consider removing boehm-gc as well.  The only other user is
--enable-objc-gc, which better should use an external boehm-gc.

Matthias

^ permalink raw reply	[flat|nested] 60+ messages in thread

* [PATCH] Delete GCJ
@ 2016-09-05 15:13 Andrew Haley
  2016-09-05 15:29 ` Matthias Klose
                   ` (5 more replies)
  0 siblings, 6 replies; 60+ messages in thread
From: Andrew Haley @ 2016-09-05 15:13 UTC (permalink / raw)
  To: GCC Patches, GCJ-patches

As discussed.  I think I should ask a Global reviewer to approve this
one.  For obvious reasons I haven't included the diffs to the deleted
gcc/java and libjava directories.  The whole tree, post GCJ-deletion,
is at svn+ssh://gcc.gnu.org/svn/gcc/branches/gcj/gcj-deletion-branch
if anyone would like to try it.

Andrew.


2016-09-05  Andrew Haley  <aph@redhat.com>

	* Makefile.def: Remove libjava.
	* Makefile.tpl: Likewise.
	* Makefile.in: Regenerate.
	* configure.ac: Likewise.
	* configure: Likewise.
	* gcc/java: Remove.
	* libjava: Likewise.

Index: Makefile.in
===================================================================
--- Makefile.in	(revision 239988)
+++ Makefile.in	(working copy)
@@ -322,8 +322,6 @@
 HOST_LIBELFLIBS = @libelflibs@
 HOST_LIBELFINC = @libelfinc@

-EXTRA_CONFIGARGS_LIBJAVA = @EXTRA_CONFIGARGS_LIBJAVA@
-
 # ----------------------------------------------
 # Programs producing files for the BUILD machine
 # ----------------------------------------------
@@ -1007,7 +1005,6 @@
     maybe-configure-target-winsup \
     maybe-configure-target-libgloss \
     maybe-configure-target-libffi \
-    maybe-configure-target-libjava \
     maybe-configure-target-zlib \
     maybe-configure-target-boehm-gc \
     maybe-configure-target-rda \
@@ -1174,7 +1171,6 @@
 all-target: maybe-all-target-winsup
 all-target: maybe-all-target-libgloss
 all-target: maybe-all-target-libffi
-all-target: maybe-all-target-libjava
 all-target: maybe-all-target-zlib
 all-target: maybe-all-target-boehm-gc
 all-target: maybe-all-target-rda
@@ -1268,7 +1264,6 @@
 info-target: maybe-info-target-winsup
 info-target: maybe-info-target-libgloss
 info-target: maybe-info-target-libffi
-info-target: maybe-info-target-libjava
 info-target: maybe-info-target-zlib
 info-target: maybe-info-target-boehm-gc
 info-target: maybe-info-target-rda
@@ -1355,7 +1350,6 @@
 dvi-target: maybe-dvi-target-winsup
 dvi-target: maybe-dvi-target-libgloss
 dvi-target: maybe-dvi-target-libffi
-dvi-target: maybe-dvi-target-libjava
 dvi-target: maybe-dvi-target-zlib
 dvi-target: maybe-dvi-target-boehm-gc
 dvi-target: maybe-dvi-target-rda
@@ -1442,7 +1436,6 @@
 pdf-target: maybe-pdf-target-winsup
 pdf-target: maybe-pdf-target-libgloss
 pdf-target: maybe-pdf-target-libffi
-pdf-target: maybe-pdf-target-libjava
 pdf-target: maybe-pdf-target-zlib
 pdf-target: maybe-pdf-target-boehm-gc
 pdf-target: maybe-pdf-target-rda
@@ -1529,7 +1522,6 @@
 html-target: maybe-html-target-winsup
 html-target: maybe-html-target-libgloss
 html-target: maybe-html-target-libffi
-html-target: maybe-html-target-libjava
 html-target: maybe-html-target-zlib
 html-target: maybe-html-target-boehm-gc
 html-target: maybe-html-target-rda
@@ -1616,7 +1608,6 @@
 TAGS-target: maybe-TAGS-target-winsup
 TAGS-target: maybe-TAGS-target-libgloss
 TAGS-target: maybe-TAGS-target-libffi
-TAGS-target: maybe-TAGS-target-libjava
 TAGS-target: maybe-TAGS-target-zlib
 TAGS-target: maybe-TAGS-target-boehm-gc
 TAGS-target: maybe-TAGS-target-rda
@@ -1703,7 +1694,6 @@
 install-info-target: maybe-install-info-target-winsup
 install-info-target: maybe-install-info-target-libgloss
 install-info-target: maybe-install-info-target-libffi
-install-info-target: maybe-install-info-target-libjava
 install-info-target: maybe-install-info-target-zlib
 install-info-target: maybe-install-info-target-boehm-gc
 install-info-target: maybe-install-info-target-rda
@@ -1790,7 +1780,6 @@
 install-pdf-target: maybe-install-pdf-target-winsup
 install-pdf-target: maybe-install-pdf-target-libgloss
 install-pdf-target: maybe-install-pdf-target-libffi
-install-pdf-target: maybe-install-pdf-target-libjava
 install-pdf-target: maybe-install-pdf-target-zlib
 install-pdf-target: maybe-install-pdf-target-boehm-gc
 install-pdf-target: maybe-install-pdf-target-rda
@@ -1877,7 +1866,6 @@
 install-html-target: maybe-install-html-target-winsup
 install-html-target: maybe-install-html-target-libgloss
 install-html-target: maybe-install-html-target-libffi
-install-html-target: maybe-install-html-target-libjava
 install-html-target: maybe-install-html-target-zlib
 install-html-target: maybe-install-html-target-boehm-gc
 install-html-target: maybe-install-html-target-rda
@@ -1964,7 +1952,6 @@
 installcheck-target: maybe-installcheck-target-winsup
 installcheck-target: maybe-installcheck-target-libgloss
 installcheck-target: maybe-installcheck-target-libffi
-installcheck-target: maybe-installcheck-target-libjava
 installcheck-target: maybe-installcheck-target-zlib
 installcheck-target: maybe-installcheck-target-boehm-gc
 installcheck-target: maybe-installcheck-target-rda
@@ -2051,7 +2038,6 @@
 mostlyclean-target: maybe-mostlyclean-target-winsup
 mostlyclean-target: maybe-mostlyclean-target-libgloss
 mostlyclean-target: maybe-mostlyclean-target-libffi
-mostlyclean-target: maybe-mostlyclean-target-libjava
 mostlyclean-target: maybe-mostlyclean-target-zlib
 mostlyclean-target: maybe-mostlyclean-target-boehm-gc
 mostlyclean-target: maybe-mostlyclean-target-rda
@@ -2138,7 +2124,6 @@
 clean-target: maybe-clean-target-winsup
 clean-target: maybe-clean-target-libgloss
 clean-target: maybe-clean-target-libffi
-clean-target: maybe-clean-target-libjava
 clean-target: maybe-clean-target-zlib
 clean-target: maybe-clean-target-boehm-gc
 clean-target: maybe-clean-target-rda
@@ -2225,7 +2210,6 @@
 distclean-target: maybe-distclean-target-winsup
 distclean-target: maybe-distclean-target-libgloss
 distclean-target: maybe-distclean-target-libffi
-distclean-target: maybe-distclean-target-libjava
 distclean-target: maybe-distclean-target-zlib
 distclean-target: maybe-distclean-target-boehm-gc
 distclean-target: maybe-distclean-target-rda
@@ -2312,7 +2296,6 @@
 maintainer-clean-target: maybe-maintainer-clean-target-winsup
 maintainer-clean-target: maybe-maintainer-clean-target-libgloss
 maintainer-clean-target: maybe-maintainer-clean-target-libffi
-maintainer-clean-target: maybe-maintainer-clean-target-libjava
 maintainer-clean-target: maybe-maintainer-clean-target-zlib
 maintainer-clean-target: maybe-maintainer-clean-target-boehm-gc
 maintainer-clean-target: maybe-maintainer-clean-target-rda
@@ -2455,7 +2438,6 @@
     maybe-check-target-winsup \
     maybe-check-target-libgloss \
     maybe-check-target-libffi \
-    maybe-check-target-libjava \
     maybe-check-target-zlib \
     maybe-check-target-boehm-gc \
     maybe-check-target-rda \
@@ -2638,7 +2620,6 @@
     maybe-install-target-winsup \
     maybe-install-target-libgloss \
     maybe-install-target-libffi \
-    maybe-install-target-libjava \
     maybe-install-target-zlib \
     maybe-install-target-boehm-gc \
     maybe-install-target-rda \
@@ -2745,7 +2726,6 @@
     maybe-install-strip-target-winsup \
     maybe-install-strip-target-libgloss \
     maybe-install-strip-target-libffi \
-    maybe-install-strip-target-libjava \
     maybe-install-strip-target-zlib \
     maybe-install-strip-target-boehm-gc \
     maybe-install-strip-target-rda \
@@ -47894,464 +47874,6 @@



-.PHONY: configure-target-libjava maybe-configure-target-libjava
-maybe-configure-target-libjava:
-@if gcc-bootstrap
-configure-target-libjava: stage_current
-@endif gcc-bootstrap
-@if target-libjava
-maybe-configure-target-libjava: configure-target-libjava
-configure-target-libjava:
-	@: $(MAKE); $(unstage)
-	@r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	echo "Checking multilib configuration for libjava..."; \
-	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libjava; \
-	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libjava/multilib.tmp 2> /dev/null; \
-	if test -r $(TARGET_SUBDIR)/libjava/multilib.out; then \
-	  if cmp -s $(TARGET_SUBDIR)/libjava/multilib.tmp $(TARGET_SUBDIR)/libjava/multilib.out; then \
-	    rm -f $(TARGET_SUBDIR)/libjava/multilib.tmp; \
-	  else \
-	    rm -f $(TARGET_SUBDIR)/libjava/Makefile; \
-	    mv $(TARGET_SUBDIR)/libjava/multilib.tmp $(TARGET_SUBDIR)/libjava/multilib.out; \
-	  fi; \
-	else \
-	  mv $(TARGET_SUBDIR)/libjava/multilib.tmp $(TARGET_SUBDIR)/libjava/multilib.out; \
-	fi; \
-	test ! -f $(TARGET_SUBDIR)/libjava/Makefile || exit 0; \
-	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libjava; \
-	$(RAW_CXX_TARGET_EXPORTS)  \
-	echo Configuring in $(TARGET_SUBDIR)/libjava; \
-	cd "$(TARGET_SUBDIR)/libjava" || exit 1; \
-	case $(srcdir) in \
-	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
-	  *) topdir=`echo $(TARGET_SUBDIR)/libjava/ | \
-		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
-	esac; \
-	module_srcdir=libjava; \
-	rm -f no-such-file || : ; \
-	CONFIG_SITE=no-such-file $(SHELL) \
-	  $$s/$$module_srcdir/configure \
-	  --srcdir=$${topdir}/$$module_srcdir \
-	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
-	  --target=${target_alias} $(EXTRA_CONFIGARGS_LIBJAVA) \
-	  || exit 1
-@endif target-libjava
-
-
-
-
-
-.PHONY: all-target-libjava maybe-all-target-libjava
-maybe-all-target-libjava:
-@if gcc-bootstrap
-all-target-libjava: stage_current
-@endif gcc-bootstrap
-@if target-libjava
-TARGET-target-libjava=all
-maybe-all-target-libjava: all-target-libjava
-all-target-libjava: configure-target-libjava
-	@: $(MAKE); $(unstage)
-	@r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(RAW_CXX_TARGET_EXPORTS)  \
-	(cd $(TARGET_SUBDIR)/libjava && \
-	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   \
-		$(TARGET-target-libjava))
-@endif target-libjava
-
-
-
-
-
-.PHONY: check-target-libjava maybe-check-target-libjava
-maybe-check-target-libjava:
-@if target-libjava
-maybe-check-target-libjava: check-target-libjava
-
-check-target-libjava:
-	@: $(MAKE); $(unstage)
-	@r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(RAW_CXX_TARGET_EXPORTS) \
-	(cd $(TARGET_SUBDIR)/libjava && \
-	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   check)
-
-@endif target-libjava
-
-.PHONY: install-target-libjava maybe-install-target-libjava
-maybe-install-target-libjava:
-@if target-libjava
-maybe-install-target-libjava: install-target-libjava
-
-install-target-libjava: installdirs
-	@: $(MAKE); $(unstage)
-	@r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(RAW_CXX_TARGET_EXPORTS) \
-	(cd $(TARGET_SUBDIR)/libjava && \
-	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install)
-
-@endif target-libjava
-
-.PHONY: install-strip-target-libjava maybe-install-strip-target-libjava
-maybe-install-strip-target-libjava:
-@if target-libjava
-maybe-install-strip-target-libjava: install-strip-target-libjava
-
-install-strip-target-libjava: installdirs
-	@: $(MAKE); $(unstage)
-	@r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(RAW_CXX_TARGET_EXPORTS) \
-	(cd $(TARGET_SUBDIR)/libjava && \
-	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install-strip)
-
-@endif target-libjava
-
-# Other targets (info, dvi, pdf, etc.)
-
-.PHONY: maybe-info-target-libjava info-target-libjava
-maybe-info-target-libjava:
-@if target-libjava
-maybe-info-target-libjava: info-target-libjava
-
-info-target-libjava: \
-    configure-target-libjava
-	@: $(MAKE); $(unstage)
-	@[ -f $(TARGET_SUBDIR)/libjava/Makefile ] || exit 0; \
-	r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(RAW_CXX_TARGET_EXPORTS) \
-	echo "Doing info in $(TARGET_SUBDIR)/libjava"; \
-	for flag in $(EXTRA_TARGET_FLAGS); do \
-	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-	done; \
-	(cd $(TARGET_SUBDIR)/libjava && \
-	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-	          "RANLIB=$${RANLIB}" \
-	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-	           info) \
-	  || exit 1
-
-@endif target-libjava
-
-.PHONY: maybe-dvi-target-libjava dvi-target-libjava
-maybe-dvi-target-libjava:
-@if target-libjava
-maybe-dvi-target-libjava: dvi-target-libjava
-
-dvi-target-libjava: \
-    configure-target-libjava
-	@: $(MAKE); $(unstage)
-	@[ -f $(TARGET_SUBDIR)/libjava/Makefile ] || exit 0; \
-	r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(RAW_CXX_TARGET_EXPORTS) \
-	echo "Doing dvi in $(TARGET_SUBDIR)/libjava"; \
-	for flag in $(EXTRA_TARGET_FLAGS); do \
-	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-	done; \
-	(cd $(TARGET_SUBDIR)/libjava && \
-	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-	          "RANLIB=$${RANLIB}" \
-	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-	           dvi) \
-	  || exit 1
-
-@endif target-libjava
-
-.PHONY: maybe-pdf-target-libjava pdf-target-libjava
-maybe-pdf-target-libjava:
-@if target-libjava
-maybe-pdf-target-libjava: pdf-target-libjava
-
-pdf-target-libjava: \
-    configure-target-libjava
-	@: $(MAKE); $(unstage)
-	@[ -f $(TARGET_SUBDIR)/libjava/Makefile ] || exit 0; \
-	r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(RAW_CXX_TARGET_EXPORTS) \
-	echo "Doing pdf in $(TARGET_SUBDIR)/libjava"; \
-	for flag in $(EXTRA_TARGET_FLAGS); do \
-	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-	done; \
-	(cd $(TARGET_SUBDIR)/libjava && \
-	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-	          "RANLIB=$${RANLIB}" \
-	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-	           pdf) \
-	  || exit 1
-
-@endif target-libjava
-
-.PHONY: maybe-html-target-libjava html-target-libjava
-maybe-html-target-libjava:
-@if target-libjava
-maybe-html-target-libjava: html-target-libjava
-
-html-target-libjava: \
-    configure-target-libjava
-	@: $(MAKE); $(unstage)
-	@[ -f $(TARGET_SUBDIR)/libjava/Makefile ] || exit 0; \
-	r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(RAW_CXX_TARGET_EXPORTS) \
-	echo "Doing html in $(TARGET_SUBDIR)/libjava"; \
-	for flag in $(EXTRA_TARGET_FLAGS); do \
-	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-	done; \
-	(cd $(TARGET_SUBDIR)/libjava && \
-	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-	          "RANLIB=$${RANLIB}" \
-	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-	           html) \
-	  || exit 1
-
-@endif target-libjava
-
-.PHONY: maybe-TAGS-target-libjava TAGS-target-libjava
-maybe-TAGS-target-libjava:
-@if target-libjava
-maybe-TAGS-target-libjava: TAGS-target-libjava
-
-TAGS-target-libjava: \
-    configure-target-libjava
-	@: $(MAKE); $(unstage)
-	@[ -f $(TARGET_SUBDIR)/libjava/Makefile ] || exit 0; \
-	r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(RAW_CXX_TARGET_EXPORTS) \
-	echo "Doing TAGS in $(TARGET_SUBDIR)/libjava"; \
-	for flag in $(EXTRA_TARGET_FLAGS); do \
-	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-	done; \
-	(cd $(TARGET_SUBDIR)/libjava && \
-	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-	          "RANLIB=$${RANLIB}" \
-	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-	           TAGS) \
-	  || exit 1
-
-@endif target-libjava
-
-.PHONY: maybe-install-info-target-libjava install-info-target-libjava
-maybe-install-info-target-libjava:
-@if target-libjava
-maybe-install-info-target-libjava: install-info-target-libjava
-
-install-info-target-libjava: \
-    configure-target-libjava \
-    info-target-libjava
-	@: $(MAKE); $(unstage)
-	@[ -f $(TARGET_SUBDIR)/libjava/Makefile ] || exit 0; \
-	r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(RAW_CXX_TARGET_EXPORTS) \
-	echo "Doing install-info in $(TARGET_SUBDIR)/libjava"; \
-	for flag in $(EXTRA_TARGET_FLAGS); do \
-	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-	done; \
-	(cd $(TARGET_SUBDIR)/libjava && \
-	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-	          "RANLIB=$${RANLIB}" \
-	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-	           install-info) \
-	  || exit 1
-
-@endif target-libjava
-
-.PHONY: maybe-install-pdf-target-libjava install-pdf-target-libjava
-maybe-install-pdf-target-libjava:
-@if target-libjava
-maybe-install-pdf-target-libjava: install-pdf-target-libjava
-
-install-pdf-target-libjava: \
-    configure-target-libjava \
-    pdf-target-libjava
-	@: $(MAKE); $(unstage)
-	@[ -f $(TARGET_SUBDIR)/libjava/Makefile ] || exit 0; \
-	r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(RAW_CXX_TARGET_EXPORTS) \
-	echo "Doing install-pdf in $(TARGET_SUBDIR)/libjava"; \
-	for flag in $(EXTRA_TARGET_FLAGS); do \
-	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-	done; \
-	(cd $(TARGET_SUBDIR)/libjava && \
-	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-	          "RANLIB=$${RANLIB}" \
-	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-	           install-pdf) \
-	  || exit 1
-
-@endif target-libjava
-
-.PHONY: maybe-install-html-target-libjava install-html-target-libjava
-maybe-install-html-target-libjava:
-@if target-libjava
-maybe-install-html-target-libjava: install-html-target-libjava
-
-install-html-target-libjava: \
-    configure-target-libjava \
-    html-target-libjava
-	@: $(MAKE); $(unstage)
-	@[ -f $(TARGET_SUBDIR)/libjava/Makefile ] || exit 0; \
-	r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(RAW_CXX_TARGET_EXPORTS) \
-	echo "Doing install-html in $(TARGET_SUBDIR)/libjava"; \
-	for flag in $(EXTRA_TARGET_FLAGS); do \
-	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-	done; \
-	(cd $(TARGET_SUBDIR)/libjava && \
-	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-	          "RANLIB=$${RANLIB}" \
-	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-	           install-html) \
-	  || exit 1
-
-@endif target-libjava
-
-.PHONY: maybe-installcheck-target-libjava installcheck-target-libjava
-maybe-installcheck-target-libjava:
-@if target-libjava
-maybe-installcheck-target-libjava: installcheck-target-libjava
-
-installcheck-target-libjava: \
-    configure-target-libjava
-	@: $(MAKE); $(unstage)
-	@[ -f $(TARGET_SUBDIR)/libjava/Makefile ] || exit 0; \
-	r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(RAW_CXX_TARGET_EXPORTS) \
-	echo "Doing installcheck in $(TARGET_SUBDIR)/libjava"; \
-	for flag in $(EXTRA_TARGET_FLAGS); do \
-	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-	done; \
-	(cd $(TARGET_SUBDIR)/libjava && \
-	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-	          "RANLIB=$${RANLIB}" \
-	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-	           installcheck) \
-	  || exit 1
-
-@endif target-libjava
-
-.PHONY: maybe-mostlyclean-target-libjava mostlyclean-target-libjava
-maybe-mostlyclean-target-libjava:
-@if target-libjava
-maybe-mostlyclean-target-libjava: mostlyclean-target-libjava
-
-mostlyclean-target-libjava:
-	@: $(MAKE); $(unstage)
-	@[ -f $(TARGET_SUBDIR)/libjava/Makefile ] || exit 0; \
-	r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(RAW_CXX_TARGET_EXPORTS) \
-	echo "Doing mostlyclean in $(TARGET_SUBDIR)/libjava"; \
-	for flag in $(EXTRA_TARGET_FLAGS); do \
-	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-	done; \
-	(cd $(TARGET_SUBDIR)/libjava && \
-	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-	          "RANLIB=$${RANLIB}" \
-	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-	           mostlyclean) \
-	  || exit 1
-
-@endif target-libjava
-
-.PHONY: maybe-clean-target-libjava clean-target-libjava
-maybe-clean-target-libjava:
-@if target-libjava
-maybe-clean-target-libjava: clean-target-libjava
-
-clean-target-libjava:
-	@: $(MAKE); $(unstage)
-	@[ -f $(TARGET_SUBDIR)/libjava/Makefile ] || exit 0; \
-	r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(RAW_CXX_TARGET_EXPORTS) \
-	echo "Doing clean in $(TARGET_SUBDIR)/libjava"; \
-	for flag in $(EXTRA_TARGET_FLAGS); do \
-	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-	done; \
-	(cd $(TARGET_SUBDIR)/libjava && \
-	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-	          "RANLIB=$${RANLIB}" \
-	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-	           clean) \
-	  || exit 1
-
-@endif target-libjava
-
-.PHONY: maybe-distclean-target-libjava distclean-target-libjava
-maybe-distclean-target-libjava:
-@if target-libjava
-maybe-distclean-target-libjava: distclean-target-libjava
-
-distclean-target-libjava:
-	@: $(MAKE); $(unstage)
-	@[ -f $(TARGET_SUBDIR)/libjava/Makefile ] || exit 0; \
-	r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(RAW_CXX_TARGET_EXPORTS) \
-	echo "Doing distclean in $(TARGET_SUBDIR)/libjava"; \
-	for flag in $(EXTRA_TARGET_FLAGS); do \
-	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-	done; \
-	(cd $(TARGET_SUBDIR)/libjava && \
-	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-	          "RANLIB=$${RANLIB}" \
-	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-	           distclean) \
-	  || exit 1
-
-@endif target-libjava
-
-.PHONY: maybe-maintainer-clean-target-libjava maintainer-clean-target-libjava
-maybe-maintainer-clean-target-libjava:
-@if target-libjava
-maybe-maintainer-clean-target-libjava: maintainer-clean-target-libjava
-
-maintainer-clean-target-libjava:
-	@: $(MAKE); $(unstage)
-	@[ -f $(TARGET_SUBDIR)/libjava/Makefile ] || exit 0; \
-	r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(RAW_CXX_TARGET_EXPORTS) \
-	echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libjava"; \
-	for flag in $(EXTRA_TARGET_FLAGS); do \
-	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-	done; \
-	(cd $(TARGET_SUBDIR)/libjava && \
-	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-	          "RANLIB=$${RANLIB}" \
-	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-	           maintainer-clean) \
-	  || exit 1
-
-@endif target-libjava
-
-
-
-
-
 .PHONY: configure-target-zlib maybe-configure-target-zlib
 maybe-configure-target-zlib:
 @if gcc-bootstrap
@@ -52312,14 +51834,6 @@
 	(cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-fortran);
 check-fortran: check-gcc-fortran check-target-libquadmath check-target-libgfortran

-.PHONY: check-gcc-java check-java
-check-gcc-java:
-	r=`${PWD_COMMAND}`; export r; \
-	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-	$(HOST_EXPORTS) \
-	(cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-java);
-check-java: check-gcc-java check-target-libjava
-
 .PHONY: check-gcc-ada check-ada
 check-gcc-ada:
 	r=`${PWD_COMMAND}`; export r; \
@@ -55233,7 +54747,6 @@
 configure-target-winsup: stage_last
 configure-target-libgloss: stage_last
 configure-target-libffi: stage_last
-configure-target-libjava: stage_last
 configure-target-zlib: stage_last
 configure-target-boehm-gc: stage_last
 configure-target-rda: stage_last
@@ -55269,7 +54782,6 @@
 configure-target-winsup: maybe-all-gcc
 configure-target-libgloss: maybe-all-gcc
 configure-target-libffi: maybe-all-gcc
-configure-target-libjava: maybe-all-gcc
 configure-target-zlib: maybe-all-gcc
 configure-target-boehm-gc: maybe-all-gcc
 configure-target-rda: maybe-all-gcc
@@ -56294,13 +55806,6 @@
 all-target-libgo: maybe-all-target-libbacktrace
 all-target-libgo: maybe-all-target-libffi
 all-target-libgo: maybe-all-target-libatomic
-configure-target-libjava: maybe-configure-target-zlib
-configure-target-libjava: maybe-configure-target-boehm-gc
-configure-target-libjava: maybe-configure-target-libffi
-all-target-libjava: maybe-all-fastjar
-all-target-libjava: maybe-all-target-zlib
-all-target-libjava: maybe-all-target-boehm-gc
-all-target-libjava: maybe-all-target-libffi
 configure-target-libobjc: maybe-configure-target-boehm-gc
 all-target-libobjc: maybe-all-target-boehm-gc
 configure-target-libstdc++-v3: maybe-configure-target-libgomp
@@ -56356,7 +55861,6 @@
 install-target-libcilkrts: maybe-install-target-libgcc
 install-target-liboffloadmic: maybe-install-target-libstdc++-v3
 install-target-liboffloadmic: maybe-install-target-libgcc
-install-target-libjava: maybe-install-target-libgcc
 install-target-libitm: maybe-install-target-libgcc
 install-target-libobjc: maybe-install-target-libgcc
 install-target-libstdc++-v3: maybe-install-target-libgcc
@@ -56434,7 +55938,6 @@
 configure-target-winsup: maybe-all-target-libgcc
 configure-target-libgloss: maybe-all-target-libgcc
 configure-target-libffi: maybe-all-target-libgcc
-configure-target-libjava: maybe-all-target-libgcc
 configure-target-zlib: maybe-all-target-libgcc
 configure-target-boehm-gc: maybe-all-target-libgcc
 configure-target-rda: maybe-all-target-libgcc
@@ -56481,9 +55984,6 @@
 configure-target-libffi: maybe-all-target-newlib maybe-all-target-libgloss
 configure-target-libffi: maybe-all-target-libstdc++-v3

-configure-target-libjava: maybe-all-target-newlib maybe-all-target-libgloss
-configure-target-libjava: maybe-all-target-libstdc++-v3
-
 configure-target-zlib: maybe-all-target-newlib maybe-all-target-libgloss

 configure-target-boehm-gc: maybe-all-target-newlib maybe-all-target-libgloss
Index: configure.ac
===================================================================
--- configure.ac	(revision 239988)
+++ configure.ac	(working copy)
@@ -142,11 +142,6 @@
 # If --enable-gold is used, "gold" may replace "ld".
 host_tools="texinfo flex bison binutils gas ld fixincludes gcc cgen sid sim gdb gprof etc expect dejagnu m4 utils guile fastjar gnattools libcc1 gotools"

-# libgcj represents the runtime libraries only used by gcj.
-libgcj="target-libffi \
-	target-zlib \
-	target-libjava"
-
 # these libraries are built for the target environment, and are built after
 # the host libraries and the host tools (which may be a cross compiler)
 # Note that libiberty is not a target library.
@@ -166,8 +161,6 @@
 		target-libssp \
 		target-libquadmath \
 		target-libgfortran \
-		target-boehm-gc \
-		${libgcj} \
 		target-libobjc \
 		target-libada \
 		target-libgo"
@@ -507,41 +500,6 @@
 fi])
 AC_SUBST(extra_liboffloadmic_configure_flags)

-# Save it here so that, even in case of --enable-libgcj, if the Java
-# front-end isn't enabled, we still get libgcj disabled.
-libgcj_saved=$libgcj
-case $enable_libgcj in
-yes)
-  # If we reset it here, it won't get added to noconfigdirs in the
-  # target-specific build rules, so it will be forcibly enabled
-  # (unless the Java language itself isn't enabled).
-  libgcj=
-  ;;
-no)
-  # Make sure we get it printed in the list of not supported target libs.
-  # Don't disable libffi, though, other languages use it.
-  noconfigdirs="$noconfigdirs `echo ${libgcj} | sed -e 's/target-libffi//'`"
-  # Clear libgcj_saved so that even if java is enabled libffi won't be
-  # built.
-  libgcj_saved=
-  ;;
-esac
-
-AC_ARG_ENABLE(static-libjava,
-[AS_HELP_STRING([[--enable-static-libjava[=ARG]]],
-		[build static libjava @<:@default=no@:>@])],
-ENABLE_STATIC_LIBJAVA=$enableval,
-ENABLE_STATIC_LIBJAVA=no)
-enable_static_libjava=
-if test "${ENABLE_STATIC_LIBJAVA}" = "yes" ; then
-  enable_static_libjava=yes
-fi
-
-if test x$enable_static_libjava != xyes ; then
-  EXTRA_CONFIGARGS_LIBJAVA=--disable-static
-fi
-AC_SUBST(EXTRA_CONFIGARGS_LIBJAVA)
-
 # Enable libgomp by default on hosted POSIX systems, and a few others.
 if test x$enable_libgomp = x ; then
     case "${target}" in
@@ -738,166 +696,6 @@
     ;;
 esac

-# Disable Java if libffi is not supported.
-case "${target}" in
-  aarch64-*-*)
-    ;;
-  alpha*-*-*)
-    ;;
-  arm*-*-*)
-    ;;
-  cris-*-*)
-    ;;
-  frv-*-*)
-    ;;
-  hppa*-*-linux*)
-    ;;
-  hppa*-*-hpux*)
-    ;;
-  i?86-*-*)
-    ;;
-  ia64*-*-*)
-    ;;
-  m32r*-*-*)
-    ;;
-  m68k-*-*)
-    ;;
-  mips*-*-rtems*)
-    ;;
-  mips*-*-linux*)
-    ;;
-  powerpc*-*-linux*)
-    ;;
-  powerpc-*-darwin*)
-    ;;
-  powerpc-*-aix* | rs6000-*-aix*)
-    ;;
-  powerpc-*-freebsd*)
-    ;;
-  powerpc64-*-freebsd*)
-    ;;
-  powerpc*-*-rtems*)
-    ;;
-  s390-*-* | s390x-*-*)
-    ;;
-  sh-*-* | sh[[34]]*-*-*)
-    ;;
-  sparc*-*-*)
-    ;;
-  x86_64-*-*)
-    ;;
-  *-*-*)
-    unsupported_languages="$unsupported_languages java"
-    ;;
-esac
-
-# Disable Java, libgcj or related libraries for some systems.
-case "${target}" in
-  powerpc-*-darwin*)
-    ;;
-  i[[3456789]]86-*-darwin*)
-    ;;
-  x86_64-*-darwin[[912]]*)
-    ;;
-  *-*-darwin*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  *-*-netware*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  *-*-phoenix*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  *-*-rtems*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  *-*-tpf*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  *-*-uclinux*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  *-*-vxworks*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  alpha*-*-*vms*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  arm*-*-freebsd*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  arm-wince-pe)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  arm*-*-symbianelf*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  bfin-*-*)
-    noconfigdirs="$noconfigdirs target-boehm-gc"
-    ;;
-  cris-*-* | crisv32-*-*)
-    unsupported_languages="$unsupported_languages java"
-    case "${target}" in
-      *-*-linux*)
-	;;
-      *) # See PR46792 regarding target-libffi.
-	noconfigdirs="$noconfigdirs target-libffi target-boehm-gc";;
-    esac
-    ;;
-  hppa*64*-*-linux*)
-    # In this case, it's because the hppa64-linux target is for
-    # the kernel only at this point and has no libc, and thus no
-    # headers, crt*.o, etc., all of which are needed by these.
-    unsupported_languages="$unsupported_languages java"
-    ;;
-  hppa*64*-*-hpux*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  hppa*-hp-hpux11*)
-    ;;
-  hppa*-*-hpux*)
-    # According to Alexandre Oliva <aoliva@redhat.com>, libjava won't
-    # build on HP-UX 10.20.
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  ia64*-*-*vms*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  i[[3456789]]86-w64-mingw*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  i[[3456789]]86-*-mingw*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  x86_64-*-mingw*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  mmix-*-*)
-    noconfigdirs="$noconfigdirs target-libffi target-boehm-gc"
-    ;;
-  powerpc-*-aix*)
-    # copied from rs6000-*-* entry
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  rs6000-*-aix*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  ft32-*-*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  *-*-lynxos*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-esac
-
-# Disable the go frontend on systems where it is known to not work. Please keep
-# this in sync with contrib/config-list.mk.
-case "${target}" in
-*-*-darwin* | *-*-cygwin* | *-*-mingw* | *-*-aix*)
-    unsupported_languages="$unsupported_languages go"
-    ;;
-esac
-
 # Disable libgo for some systems where it is known to not work.
 # For testing, you can easily override this with --enable-libgo.
 if test x$enable_libgo = x; then
@@ -2152,30 +1950,6 @@
   fi
 done

-# Check for Boehm's garbage collector
-AC_ARG_ENABLE(objc-gc,
-[AS_HELP_STRING([--enable-objc-gc],
-		[enable use of Boehm's garbage collector with the
-		 GNU Objective-C runtime])],
-[case ,${enable_languages},:${enable_objc_gc}:${noconfigdirs} in
-  *,objc,*:*:yes:*target-boehm-gc*)
-    AC_MSG_ERROR([Boehm's garbage collector was requested yet not supported in this configuration])
-    ;;
-esac])
-
-# Make sure we only build Boehm's garbage collector if required.
-case ,${enable_languages},:${enable_objc_gc} in
-  *,objc,*:yes)
-    # Keep target-boehm-gc if requested for Objective-C.
-    ;;
-  *)
-    # Otherwise remove target-boehm-gc depending on target-libjava.
-    if echo " ${noconfigdirs} " | grep "target-libjava" >/dev/null 2>&1; then
-      noconfigdirs="$noconfigdirs target-boehm-gc"
-    fi
-    ;;
-esac
-
 # Disable libcilkrts, libitm, libsanitizer, libvtv, liboffloadmic if we're not building C++
 case ,${enable_languages}, in
   *,c++,*)
@@ -2260,15 +2034,6 @@
   fi
 done

-# Exclude target-zlib if target-libjava isn't built.
-case ${target_configdirs} in
-*target-libjava*)
-  ;;
-*)
-  target_configdirs="`echo ${target_configdirs} | sed -e 's/target-zlib//'`"
-  ;;
-esac
-
 # libiberty-linker-plugin is special: it doesn't have its own source directory,
 # so we have to add it after the preceding checks.
 if test x"$extra_linker_plugin_flags$extra_linker_plugin_configure_flags" != x
Index: configure
===================================================================
--- configure	(revision 239988)
+++ configure	(working copy)
@@ -674,7 +674,6 @@
 LDFLAGS
 CFLAGS
 CC
-EXTRA_CONFIGARGS_LIBJAVA
 extra_liboffloadmic_configure_flags
 target_subdir
 host_subdir
@@ -761,7 +760,6 @@
 enable_libssp
 enable_libstdcxx
 enable_liboffloadmic
-enable_static_libjava
 enable_bootstrap
 with_mpc
 with_mpc_include
@@ -786,7 +784,6 @@
 enable_linker_plugin_configure_flags
 enable_linker_plugin_flags
 enable_stage1_languages
-enable_objc_gc
 with_build_sysroot
 with_debug_prefix_map
 with_build_config
@@ -1489,8 +1486,6 @@
   --disable-libstdcxx     do not build libstdc++-v3 directory
   --enable-liboffloadmic=ARG
                           build liboffloadmic [ARG={no,host,target}]
-  --enable-static-libjava[=ARG]
-                          build static libjava [default=no]
   --enable-bootstrap      enable bootstrapping [yes if native build]
   --disable-isl-version-check
                           disable check for isl version
@@ -1504,8 +1499,6 @@
   --enable-stage1-languages[=all]
                           choose additional languages to build during stage1.
                           Mostly useful for compiler development
-  --enable-objc-gc        enable use of Boehm's garbage collector with the GNU
-                          Objective-C runtime
   --enable-vtable-verify  Enable vtable verification feature
   --enable-serial-[{host,target,build}-]configure
                           force sequential configuration of sub-packages for
@@ -2736,11 +2729,6 @@
 # If --enable-gold is used, "gold" may replace "ld".
 host_tools="texinfo flex bison binutils gas ld fixincludes gcc cgen sid sim gdb gprof etc expect dejagnu m4 utils guile fastjar gnattools libcc1 gotools"

-# libgcj represents the runtime libraries only used by gcj.
-libgcj="target-libffi \
-	target-zlib \
-	target-libjava"
-
 # these libraries are built for the target environment, and are built after
 # the host libraries and the host tools (which may be a cross compiler)
 # Note that libiberty is not a target library.
@@ -2760,8 +2748,6 @@
 		target-libssp \
 		target-libquadmath \
 		target-libgfortran \
-		target-boehm-gc \
-		${libgcj} \
 		target-libobjc \
 		target-libada \
 		target-libgo"
@@ -3148,43 +3134,6 @@



-# Save it here so that, even in case of --enable-libgcj, if the Java
-# front-end isn't enabled, we still get libgcj disabled.
-libgcj_saved=$libgcj
-case $enable_libgcj in
-yes)
-  # If we reset it here, it won't get added to noconfigdirs in the
-  # target-specific build rules, so it will be forcibly enabled
-  # (unless the Java language itself isn't enabled).
-  libgcj=
-  ;;
-no)
-  # Make sure we get it printed in the list of not supported target libs.
-  # Don't disable libffi, though, other languages use it.
-  noconfigdirs="$noconfigdirs `echo ${libgcj} | sed -e 's/target-libffi//'`"
-  # Clear libgcj_saved so that even if java is enabled libffi won't be
-  # built.
-  libgcj_saved=
-  ;;
-esac
-
-# Check whether --enable-static-libjava was given.
-if test "${enable_static_libjava+set}" = set; then :
-  enableval=$enable_static_libjava; ENABLE_STATIC_LIBJAVA=$enableval
-else
-  ENABLE_STATIC_LIBJAVA=no
-fi
-
-enable_static_libjava=
-if test "${ENABLE_STATIC_LIBJAVA}" = "yes" ; then
-  enable_static_libjava=yes
-fi
-
-if test x$enable_static_libjava != xyes ; then
-  EXTRA_CONFIGARGS_LIBJAVA=--disable-static
-fi
-
-
 # Enable libgomp by default on hosted POSIX systems, and a few others.
 if test x$enable_libgomp = x ; then
     case "${target}" in
@@ -3402,166 +3351,6 @@
     ;;
 esac

-# Disable Java if libffi is not supported.
-case "${target}" in
-  aarch64-*-*)
-    ;;
-  alpha*-*-*)
-    ;;
-  arm*-*-*)
-    ;;
-  cris-*-*)
-    ;;
-  frv-*-*)
-    ;;
-  hppa*-*-linux*)
-    ;;
-  hppa*-*-hpux*)
-    ;;
-  i?86-*-*)
-    ;;
-  ia64*-*-*)
-    ;;
-  m32r*-*-*)
-    ;;
-  m68k-*-*)
-    ;;
-  mips*-*-rtems*)
-    ;;
-  mips*-*-linux*)
-    ;;
-  powerpc*-*-linux*)
-    ;;
-  powerpc-*-darwin*)
-    ;;
-  powerpc-*-aix* | rs6000-*-aix*)
-    ;;
-  powerpc-*-freebsd*)
-    ;;
-  powerpc64-*-freebsd*)
-    ;;
-  powerpc*-*-rtems*)
-    ;;
-  s390-*-* | s390x-*-*)
-    ;;
-  sh-*-* | sh[34]*-*-*)
-    ;;
-  sparc*-*-*)
-    ;;
-  x86_64-*-*)
-    ;;
-  *-*-*)
-    unsupported_languages="$unsupported_languages java"
-    ;;
-esac
-
-# Disable Java, libgcj or related libraries for some systems.
-case "${target}" in
-  powerpc-*-darwin*)
-    ;;
-  i[3456789]86-*-darwin*)
-    ;;
-  x86_64-*-darwin[912]*)
-    ;;
-  *-*-darwin*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  *-*-netware*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  *-*-phoenix*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  *-*-rtems*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  *-*-tpf*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  *-*-uclinux*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  *-*-vxworks*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  alpha*-*-*vms*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  arm*-*-freebsd*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  arm-wince-pe)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  arm*-*-symbianelf*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  bfin-*-*)
-    noconfigdirs="$noconfigdirs target-boehm-gc"
-    ;;
-  cris-*-* | crisv32-*-*)
-    unsupported_languages="$unsupported_languages java"
-    case "${target}" in
-      *-*-linux*)
-	;;
-      *) # See PR46792 regarding target-libffi.
-	noconfigdirs="$noconfigdirs target-libffi target-boehm-gc";;
-    esac
-    ;;
-  hppa*64*-*-linux*)
-    # In this case, it's because the hppa64-linux target is for
-    # the kernel only at this point and has no libc, and thus no
-    # headers, crt*.o, etc., all of which are needed by these.
-    unsupported_languages="$unsupported_languages java"
-    ;;
-  hppa*64*-*-hpux*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  hppa*-hp-hpux11*)
-    ;;
-  hppa*-*-hpux*)
-    # According to Alexandre Oliva <aoliva@redhat.com>, libjava won't
-    # build on HP-UX 10.20.
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  ia64*-*-*vms*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  i[3456789]86-w64-mingw*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  i[3456789]86-*-mingw*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  x86_64-*-mingw*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  mmix-*-*)
-    noconfigdirs="$noconfigdirs target-libffi target-boehm-gc"
-    ;;
-  powerpc-*-aix*)
-    # copied from rs6000-*-* entry
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  rs6000-*-aix*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  ft32-*-*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-  *-*-lynxos*)
-    noconfigdirs="$noconfigdirs ${libgcj}"
-    ;;
-esac
-
-# Disable the go frontend on systems where it is known to not work. Please keep
-# this in sync with contrib/config-list.mk.
-case "${target}" in
-*-*-darwin* | *-*-cygwin* | *-*-mingw* | *-*-aix*)
-    unsupported_languages="$unsupported_languages go"
-    ;;
-esac
-
 # Disable libgo for some systems where it is known to not work.
 # For testing, you can easily override this with --enable-libgo.
 if test x$enable_libgo = x; then
@@ -6497,30 +6286,6 @@
   fi
 done

-# Check for Boehm's garbage collector
-# Check whether --enable-objc-gc was given.
-if test "${enable_objc_gc+set}" = set; then :
-  enableval=$enable_objc_gc; case ,${enable_languages},:${enable_objc_gc}:${noconfigdirs} in
-  *,objc,*:*:yes:*target-boehm-gc*)
-    as_fn_error "Boehm's garbage collector was requested yet not supported in this configuration" "$LINENO" 5
-    ;;
-esac
-fi
-
-
-# Make sure we only build Boehm's garbage collector if required.
-case ,${enable_languages},:${enable_objc_gc} in
-  *,objc,*:yes)
-    # Keep target-boehm-gc if requested for Objective-C.
-    ;;
-  *)
-    # Otherwise remove target-boehm-gc depending on target-libjava.
-    if echo " ${noconfigdirs} " | grep "target-libjava" >/dev/null 2>&1; then
-      noconfigdirs="$noconfigdirs target-boehm-gc"
-    fi
-    ;;
-esac
-
 # Disable libcilkrts, libitm, libsanitizer, libvtv, liboffloadmic if we're not building C++
 case ,${enable_languages}, in
   *,c++,*)
@@ -6605,15 +6370,6 @@
   fi
 done

-# Exclude target-zlib if target-libjava isn't built.
-case ${target_configdirs} in
-*target-libjava*)
-  ;;
-*)
-  target_configdirs="`echo ${target_configdirs} | sed -e 's/target-zlib//'`"
-  ;;
-esac
-
 # libiberty-linker-plugin is special: it doesn't have its own source directory,
 # so we have to add it after the preceding checks.
 if test x"$extra_linker_plugin_flags$extra_linker_plugin_configure_flags" != x
Index: Makefile.def
===================================================================
--- Makefile.def	(revision 239988)
+++ Makefile.def	(working copy)
@@ -165,8 +165,6 @@
 target_modules = { module= winsup; };
 target_modules = { module= libgloss; no_check=true; };
 target_modules = { module= libffi; no_install=true; };
-target_modules = { module= libjava; raw_cxx=true;
-                   extra_configure_flags="$(EXTRA_CONFIGARGS_LIBJAVA)"; };
 target_modules = { module= zlib; };
 target_modules = { module= boehm-gc; };
 target_modules = { module= rda; };
@@ -534,7 +532,6 @@
 // Target modules.  These can also have dependencies on the language
 // environment (e.g. on libstdc++).  By default target modules depend
 // on libgcc and newlib/libgloss.
-lang_env_dependencies = { module=libjava; cxx=true; };
 lang_env_dependencies = { module=libitm; cxx=true; };
 lang_env_dependencies = { module=libffi; cxx=true; };
 lang_env_dependencies = { module=libcilkrts; cxx=true; };
@@ -555,13 +552,6 @@
 dependencies = { module=all-target-libgo; on=all-target-libbacktrace; };
 dependencies = { module=all-target-libgo; on=all-target-libffi; };
 dependencies = { module=all-target-libgo; on=all-target-libatomic; };
-dependencies = { module=configure-target-libjava; on=configure-target-zlib; };
-dependencies = { module=configure-target-libjava; on=configure-target-boehm-gc; };
-dependencies = { module=configure-target-libjava; on=configure-target-libffi; };
-dependencies = { module=all-target-libjava; on=all-fastjar; };
-dependencies = { module=all-target-libjava; on=all-target-zlib; };
-dependencies = { module=all-target-libjava; on=all-target-boehm-gc; };
-dependencies = { module=all-target-libjava; on=all-target-libffi; };
 dependencies = { module=configure-target-libobjc; on=configure-target-boehm-gc; };
 dependencies = { module=all-target-libobjc; on=all-target-boehm-gc; };
 dependencies = { module=configure-target-libstdc++-v3; on=configure-target-libgomp; };
@@ -585,7 +575,6 @@
 dependencies = { module=install-target-libcilkrts; on=install-target-libgcc; };
 dependencies = { module=install-target-liboffloadmic; on=install-target-libstdc++-v3; };
 dependencies = { module=install-target-liboffloadmic; on=install-target-libgcc; };
-dependencies = { module=install-target-libjava; on=install-target-libgcc; };
 dependencies = { module=install-target-libitm; on=install-target-libgcc; };
 dependencies = { module=install-target-libobjc; on=install-target-libgcc; };
 dependencies = { module=install-target-libstdc++-v3; on=install-target-libgcc; };
@@ -610,8 +599,6 @@
 languages = { language=fortran;	gcc-check-target=check-fortran;
 				lib-check-target=check-target-libquadmath;
 				lib-check-target=check-target-libgfortran; };
-languages = { language=java;	gcc-check-target=check-java;
-				lib-check-target=check-target-libjava; };
 languages = { language=ada;	gcc-check-target=check-ada;
 				lib-check-target=check-target-libada; };
 languages = { language=objc;	gcc-check-target=check-objc;
Index: Makefile.tpl
===================================================================
--- Makefile.tpl	(revision 239988)
+++ Makefile.tpl	(working copy)
@@ -325,8 +325,6 @@
 HOST_LIBELFLIBS = @libelflibs@
 HOST_LIBELFINC = @libelfinc@

-EXTRA_CONFIGARGS_LIBJAVA = @EXTRA_CONFIGARGS_LIBJAVA@
-
 # ----------------------------------------------
 # Programs producing files for the BUILD machine
 # ----------------------------------------------

^ permalink raw reply	[flat|nested] 60+ messages in thread

end of thread, other threads:[~2017-01-23 14:51 UTC | newest]

Thread overview: 60+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-05 22:49 [PATCH] Delete GCJ Bernd Edlinger
2016-09-06  0:20 ` Eric Gallager
  -- strict thread matches above, loose matches on Subject: below --
2016-09-05 15:13 Andrew Haley
2016-09-05 15:29 ` Matthias Klose
2016-09-05 15:31   ` Andrew Haley
2016-09-05 18:37   ` Eric Gallager
2016-09-05 18:47     ` Andrew Haley
2016-09-05 15:32 ` Matthew Fortune
2016-09-05 15:34   ` Andrew Haley
     [not found] ` <FB08E20B-5ED1-45BA-BFA0-11E7807840D2@gmail.com>
2016-09-05 16:17   ` Andrew Haley
2016-09-06  9:06     ` Richard Biener
2016-09-06  9:08       ` Jakub Jelinek
2016-09-06 21:18         ` Jeff Law
2016-09-07 11:41           ` Richard Earnshaw (lists)
2016-09-09 11:03       ` Ian Lance Taylor
2016-09-05 16:26 ` Gerald Pfeifer
2016-09-05 16:30   ` Andrew Haley
2016-09-05 18:40   ` Eric Gallager
2016-09-30 15:34   ` Andrew Haley
2017-01-22 16:51     ` Gerald Pfeifer
2017-01-22 17:17       ` Per Bothner
2017-01-22 18:41       ` Per Bothner
2017-01-23  9:01         ` Andrew Haley
2017-01-23  9:05           ` Jakub Jelinek
2017-01-23 12:52             ` Per Bothner
2017-01-23 13:42               ` Jakub Jelinek
2017-01-23 14:51                 ` Andrew Haley
2017-01-22 18:36     ` Gerald Pfeifer
2016-09-10 12:00 ` NightStrike
2016-09-11  8:25   ` Andrew Haley
2016-09-19 15:26     ` Andrew Hughes
2016-10-03 23:12 ` Matthias Klose
2016-10-04  8:40   ` Rainer Orth
2016-10-04  8:41     ` Andrew Haley
2016-10-04 17:23       ` Mike Stump
2016-10-04 17:25         ` Andrew Pinski
2016-10-04 18:40         ` Iain Sandoe
2016-10-05 16:28           ` Jeff Law
     [not found]             ` <2b5de569-1efd-f407-49c2-c9fa84cc5315@ubuntu.com>
2016-10-06 16:16               ` Matthias Klose
2016-10-06 16:43                 ` Rainer Orth
2016-10-06 16:47                   ` Iain Sandoe
2016-10-06 16:54                     ` Matthias Klose
2016-10-06 16:56                       ` Rainer Orth
2016-10-06 17:10                         ` Iain Sandoe
2016-10-06 18:01                         ` Mike Stump
2016-10-06 23:59                           ` Matthias Klose
2016-10-07  8:31                             ` Iain Sandoe
2016-10-10  4:03                               ` Matthias Klose
2016-10-10  7:58                                 ` Iain Sandoe
2016-11-20 20:42                                   ` Matthias Klose
2016-11-21  5:34                                     ` Sandra Loosemore
2016-11-21 10:24                                     ` Iain Sandoe
2016-11-21 12:57                                       ` Matthias Klose
2016-11-21 16:23                                         ` Sandra Loosemore
2016-11-21 16:40                                           ` Matthias Klose
2016-11-21 17:16                                             ` Peter Bergner
2016-11-21 17:16                                             ` Rainer Orth
2016-11-21 23:23                                               ` Matthias Klose
2016-11-22 17:13                                                 ` Sandra Loosemore
2016-11-29 21:23                                                 ` Jeff Law

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).