Richard has committed revision 38887. Richard, could you comment on my
questions regarding this change?

There's the following ChangeLog entry:

+2015-08-16 Richard Frith-Macdonald <r...@gnu.org>
+
+ * library-combo.make: Use David's suggested runtime flag for the
+ next generation (ng) runtime combo.
+ * configure.ac: Check for compiler blocks support for ng combo.
+ Fix some program source quoting for newer autoconf
+

which however does this:

Index: library-combo.make
===================================================================
--- library-combo.make (revision 38886)
+++ library-combo.make (revision 38887)
@@ -108,8 +108,8 @@
   OBJC_LDFLAGS =
   OBJC_LIB_DIR =
   OBJC_LIBS = $(OBJC_LIB_FLAG) -fobjc-nonfragile-abi
-  RUNTIME_FLAG   = -fobjc-runtime=gnustep -fblocks
-fno-objc-legacy-dispatch
-  RUNTIME_DEFINE = -DGNU_RUNTIME=1 -D_NONFRAGILE_ABI=1
+  RUNTIME_FLAG = -fobjc-runtime=gnustep-1.8 -fblocks
-fno-objc-legacy-dispatch
+  RUNTIME_DEFINE = -DGNUSTEP_RUNTIME=1 -D_NONFRAGILE_ABI=1
 endif

 ifeq ($(OBJC_RUNTIME_LIB), gnugc)


I'm not sure how correct or useful this is. I'm specifying this:
  $ ./configure --with-layout=fhs --enable-debug-by-default
--enable-objc-nonfragile-abi --enable-native-objc-exceptions --prefix=/usr

I guess I'm supposed to manually specify the ng-gnu-gnu combo? Otherwise I
still get:

configure:5968: checking whether we should use the nonfragile ABI
configure:5998: clang -c  -fobjc-runtime=gnustep-1.7 -x objective-c -I.
-I/usr/include   -L/usr/lib -fgnu-runtime -DGNU_RUNTIME
-fobjc-nonfragile-abi  conftest.c >&5

How do I go about that? And should we really be adding a completely new
combo?

I see the new environment variable OBJC_RUNTIME_LIB being used in 38887,
which, if used with value of 'ng', seems to be activating
'libobjc2'-specific code. I think this should be documented in INSTALL and
announced widely.

--------------------------


Additionally, output of 'svn diff -r 38886:38887' is bizarre and the
probable cause of the failure I'm seeing. I think this has actually broken
the build, as the diff randomly inserts 'int[newline]main ()[newline]{'
into configure. How was 'configure' regenerated?

Failure:

configure:5998: clang -c  -fobjc-runtime=gnustep-1.7 -x objective-c -I.
-I/usr/include   -L/usr/lib -fgnu-runtime -DGNU_RUNTIME
-fobjc-nonfragile-abi  conftest.c >&5
clang: warning: argument unused during compilation: '-L/usr/lib'
conftest.c:19:1: error: function definition is not allowed here
{
^
1 error generated.
configure:5998: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| /* end confdefs.h.  */
|
| int
| main ()
| {
|
| /* Note that we never execute this code so it does not really matter
|    what it is.  We are testing that the compiler accepts the
|    '-fobjc-nonfragile-abi' flag.  */
| int
| main()
| {
| #ifndef __has_feature
| #define __has_feature(x) 0
| #endif
| return __has_feature(objc_nonfragile_abi) ? 0 : 1;
| }
|
|   ;
|   return 0;
| }
configure:6004: result: no
configure:6009: The nonfragile ABI was requested, but the compiler
configure:6011: doesn't support it.
configure:6013: error: compiler doesn't support nonfragile ABI


Example of bizarre diff:

@@ -5824,6 +5923,9 @@
   return 0;
 }

+  ;
+  return 0;
+}
 _ACEOF
 if ac_fn_cxx_try_compile "$LINENO"; then :
   objcc=yes
@@ -5873,6 +5975,10 @@
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */

+int
+main ()
+{
+
 /* Note that we never execute this code so it does not really matter
    what it is.  We are testing that the compiler accepts the
    '-fobjc-nonfragile-abi' flag.  */
@@ -5885,6 +5991,9 @@
 return __has_feature(objc_nonfragile_abi) ? 0 : 1;
 }

+  ;
+  return 0;
+}
 _ACEOF


Note, when I run 'autoreconf -vfi' or 'rm configure && autoreconf -vfi' I
get the same results.

# autoreconf -V | head -n1
autoreconf (GNU Autoconf) 2.69



On Sat, Aug 15, 2015 at 1:45 PM, David Chisnall <thera...@sucs.org> wrote:

> Hi,
>
> I’ve discovered that GNUstep Make still passes -fgnu-runtime, which means
> that we default to the old ABI when compiling with clang.  Worse, it puts
> this after OBJCFLAGS provided on the command line, so it’s hard to override
> (the last one out of -fobj-runtime=, -fnext-runtime and -fgnu-runtime takes
> precendence).
>
> Please will someone who understands GNUstep Make change this so that it
> will pass a more sensible flag (-fobjc-runtime=gnustep-1.8 would be the
> best option for the latest release of the runtime)?
>
> David
>
> -- Sent from my IBM 1620
>
>
> _______________________________________________
> Gnustep-dev mailing list
> Gnustep-dev@gnu.org
> https://lists.gnu.org/mailman/listinfo/gnustep-dev
>
_______________________________________________
Gnustep-dev mailing list
Gnustep-dev@gnu.org
https://lists.gnu.org/mailman/listinfo/gnustep-dev

Reply via email to