diff mbox

boehm-gc removal and libobjc changes to build with an external bdw-gc

Message ID 44251aa7-23b7-3e30-55fc-8c940d51ed23@ubuntu.com
State New
Headers show

Commit Message

Matthias Klose Nov. 30, 2016, 11:30 a.m. UTC
On 30.11.2016 11:52, Jakub Jelinek wrote:
> On Wed, Nov 30, 2016 at 11:17:32AM +0100, Richard Biener wrote:

>> On Wed, Nov 30, 2016 at 11:06 AM, Matthias Klose <doko@ubuntu.com> wrote:

>>> On 30.11.2016 09:29, Andreas Schwab wrote:

>>>> configure: error: no --with-target-bdw-gc options and no bdw-gc pkg-config module found

>>>> make[1]: *** [Makefile:19775: configure-target-libobjc] Error 1

>>>>

>>>> Andreas.

>>>

>>> that's a bit terse. Could you send the complete output for the configuration of

>>> the libobjc subdir and the config.log?

>>>

>>> I assume that is a configuration with --enable-objc-gc and then the pkg-config

>>> module cannot be found.  Are gc/gc.h and libgc.so in standard paths without

>>> having the bdw-gc pkg-config module available? Which libgc version is installed?

>>

>> I see the same failure with just

>>

>>  ../configure --enable-languages=objc

>>

>> usually we disable languages (with a diagnostic) if requirements

>> cannot be fulfilled.

>>

>> But it seems the default chosen is bad somehow... (and breaks my bootstraps with

>> default languages).

> 

> I'm now testing the default (no --enable-objc-gc, --enable-objc-gc=*,

> --disable-objc-gc) with.  Ok for trunk if it succeeds?

> 

> 2016-11-30  Jakub Jelinek  <jakub@redhat.com>

> 

> 	* configure.ac (--enable-objc-gc): If not given, default to

> 	enable_objc_gc=no.

> 	* configure: Regenerated.

> 

> --- libobjc/configure.ac.jj	2016-11-30 08:57:26.000000000 +0100

> +++ libobjc/configure.ac	2016-11-30 11:47:33.085828683 +0100

> @@ -203,7 +203,7 @@ gt_BITFIELD_TYPE_MATTERS

>  AC_ARG_ENABLE(objc-gc,

>  [AS_HELP_STRING([--enable-objc-gc],

>  		[enable use of Boehm's garbage collector with the

> -		 GNU Objective-C runtime])])

> +		 GNU Objective-C runtime])],,enable_objc_gc=no)

>  AC_ARG_WITH([target-bdw-gc],

>  [AS_HELP_STRING([--with-target-bdw-gc=PATHLIST],

>  		[specify prefix directory for installed bdw-gc package.

> --- libobjc/configure.jj	2016-11-30 08:57:26.000000000 +0100

> +++ libobjc/configure	2016-11-30 11:47:44.720680375 +0100

> @@ -11509,6 +11509,8 @@ $as_echo "#define HAVE_BITFIELD_TYPE_MAT

>  # Check whether --enable-objc-gc was given.

>  if test "${enable_objc_gc+set}" = set; then :

>    enableval=$enable_objc_gc;

> +else

> +  enable_objc_gc=no

>  fi


There's one more fix needed for the case of only having the pkg-config module
installed when configuring with --enable-objc-gc. We can't use PKG_CHECK_MODULES
directly because the pkg.m4 macros choke on the dash in the module name. Thus
setting the CFLAGS and LIBS directly. Ok to install?

	* configure.ac: Set BDW_GC_CFLAGS and BDW_GC_LIBS after checking
	for the existence of the pkg-config modules.
	* Regenerate.

Comments

Richard Biener Nov. 30, 2016, 11:38 a.m. UTC | #1
On Wed, Nov 30, 2016 at 12:30 PM, Matthias Klose <doko@ubuntu.com> wrote:
> On 30.11.2016 11:52, Jakub Jelinek wrote:

>> On Wed, Nov 30, 2016 at 11:17:32AM +0100, Richard Biener wrote:

>>> On Wed, Nov 30, 2016 at 11:06 AM, Matthias Klose <doko@ubuntu.com> wrote:

>>>> On 30.11.2016 09:29, Andreas Schwab wrote:

>>>>> configure: error: no --with-target-bdw-gc options and no bdw-gc pkg-config module found

>>>>> make[1]: *** [Makefile:19775: configure-target-libobjc] Error 1

>>>>>

>>>>> Andreas.

>>>>

>>>> that's a bit terse. Could you send the complete output for the configuration of

>>>> the libobjc subdir and the config.log?

>>>>

>>>> I assume that is a configuration with --enable-objc-gc and then the pkg-config

>>>> module cannot be found.  Are gc/gc.h and libgc.so in standard paths without

>>>> having the bdw-gc pkg-config module available? Which libgc version is installed?

>>>

>>> I see the same failure with just

>>>

>>>  ../configure --enable-languages=objc

>>>

>>> usually we disable languages (with a diagnostic) if requirements

>>> cannot be fulfilled.

>>>

>>> But it seems the default chosen is bad somehow... (and breaks my bootstraps with

>>> default languages).

>>

>> I'm now testing the default (no --enable-objc-gc, --enable-objc-gc=*,

>> --disable-objc-gc) with.  Ok for trunk if it succeeds?

>>

>> 2016-11-30  Jakub Jelinek  <jakub@redhat.com>

>>

>>       * configure.ac (--enable-objc-gc): If not given, default to

>>       enable_objc_gc=no.

>>       * configure: Regenerated.

>>

>> --- libobjc/configure.ac.jj   2016-11-30 08:57:26.000000000 +0100

>> +++ libobjc/configure.ac      2016-11-30 11:47:33.085828683 +0100

>> @@ -203,7 +203,7 @@ gt_BITFIELD_TYPE_MATTERS

>>  AC_ARG_ENABLE(objc-gc,

>>  [AS_HELP_STRING([--enable-objc-gc],

>>               [enable use of Boehm's garbage collector with the

>> -              GNU Objective-C runtime])])

>> +              GNU Objective-C runtime])],,enable_objc_gc=no)

>>  AC_ARG_WITH([target-bdw-gc],

>>  [AS_HELP_STRING([--with-target-bdw-gc=PATHLIST],

>>               [specify prefix directory for installed bdw-gc package.

>> --- libobjc/configure.jj      2016-11-30 08:57:26.000000000 +0100

>> +++ libobjc/configure 2016-11-30 11:47:44.720680375 +0100

>> @@ -11509,6 +11509,8 @@ $as_echo "#define HAVE_BITFIELD_TYPE_MAT

>>  # Check whether --enable-objc-gc was given.

>>  if test "${enable_objc_gc+set}" = set; then :

>>    enableval=$enable_objc_gc;

>> +else

>> +  enable_objc_gc=no

>>  fi

>

> There's one more fix needed for the case of only having the pkg-config module

> installed when configuring with --enable-objc-gc. We can't use PKG_CHECK_MODULES

> directly because the pkg.m4 macros choke on the dash in the module name. Thus

> setting the CFLAGS and LIBS directly. Ok to install?


Why not fix pkg.m4?

Richard.

>         * configure.ac: Set BDW_GC_CFLAGS and BDW_GC_LIBS after checking

>         for the existence of the pkg-config modules.

>         * Regenerate.

>

>
Matthias Klose Nov. 30, 2016, 4:53 p.m. UTC | #2
On 30.11.2016 12:38, Richard Biener wrote:
> On Wed, Nov 30, 2016 at 12:30 PM, Matthias Klose <doko@ubuntu.com> wrote:

>> There's one more fix needed for the case of only having the pkg-config module

>> installed when configuring with --enable-objc-gc. We can't use PKG_CHECK_MODULES

>> directly because the pkg.m4 macros choke on the dash in the module name. Thus

>> setting the CFLAGS and LIBS directly. Ok to install?

> 

> Why not fix pkg.m4?

>

> Richard.


Jakub suggested to avoid using pkg-config at all, so we can get rid off this
code altogether.

To re-enable bootstrap with --enable-objc-gc enabled, I checked in this change
as a stop-gap:

>>         * configure.ac: Set BDW_GC_CFLAGS and BDW_GC_LIBS after checking

>>         for the existence of the pkg-config modules.

>>         * Regenerate.


Matthias
Jeff Law Nov. 30, 2016, 5:26 p.m. UTC | #3
On 11/30/2016 09:53 AM, Matthias Klose wrote:
> On 30.11.2016 12:38, Richard Biener wrote:

>> On Wed, Nov 30, 2016 at 12:30 PM, Matthias Klose <doko@ubuntu.com> wrote:

>>> There's one more fix needed for the case of only having the pkg-config module

>>> installed when configuring with --enable-objc-gc. We can't use PKG_CHECK_MODULES

>>> directly because the pkg.m4 macros choke on the dash in the module name. Thus

>>> setting the CFLAGS and LIBS directly. Ok to install?

>>

>> Why not fix pkg.m4?

>>

>> Richard.

>

> Jakub suggested to avoid using pkg-config at all, so we can get rid off this

> code altogether.

I thought we'd OK'd pkg-config (for JIT) which is why I didn't call it out.

Looking now, pkg-config got NAKd there and was removed.

Jeff
Matthias Klose Dec. 1, 2016, 12:32 p.m. UTC | #4
On 30.11.2016 18:26, Jeff Law wrote:
> On 11/30/2016 09:53 AM, Matthias Klose wrote:

>> On 30.11.2016 12:38, Richard Biener wrote:

>>> On Wed, Nov 30, 2016 at 12:30 PM, Matthias Klose <doko@ubuntu.com> wrote:

>>>> There's one more fix needed for the case of only having the pkg-config module

>>>> installed when configuring with --enable-objc-gc. We can't use

>>>> PKG_CHECK_MODULES

>>>> directly because the pkg.m4 macros choke on the dash in the module name. Thus

>>>> setting the CFLAGS and LIBS directly. Ok to install?

>>>

>>> Why not fix pkg.m4?

>>>

>>> Richard.

>>

>> Jakub suggested to avoid using pkg-config at all, so we can get rid off this

>> code altogether.

> I thought we'd OK'd pkg-config (for JIT) which is why I didn't call it out.

> 

> Looking now, pkg-config got NAKd there and was removed.


ok, removed again.

Matthias
diff mbox

Patch

--- libobjc/configure.ac	(Revision 243006)
+++ libobjc/configure.ac	(Arbeitskopie)
@@ -225,7 +225,9 @@ 
   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_RESULT([using bdw-gc pkg-config module])
+       BDW_GC_CFLAGS=`$PKG_CONFIG --cflags bdw-gc`
+       BDW_GC_LIBS=`$PKG_CONFIG --libs bdw-gc`],
       AC_MSG_ERROR([no --with-target-bdw-gc options and no bdw-gc pkg-config module found]))
   else
     dnl bdw-gw options passed by configure flags