Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Tom Tromey <tom@tromey.com>
To: gdb-patches@sourceware.org
Cc: Tom Tromey <tom@tromey.com>
Subject: [PATCH 2/7] Make the gdb.objc tests compile
Date: Sun, 16 Nov 2025 18:27:01 -0700	[thread overview]
Message-ID: <20251117012752.2657208-3-tom@tromey.com> (raw)
In-Reply-To: <20251117012752.2657208-1-tom@tromey.com>

The gdb.objc tests haven't compiled in years.  This patch fixes this,
based on a comment in bug 31671.

I don't know whether this approach works with the clang implementation
of Objective-C.  However, it does work with GCC, provided that
gnustep-base is installed.
---
 gdb/testsuite/gdb.objc/basicclass.m |  6 +++---
 gdb/testsuite/gdb.objc/nondebug.m   |  6 +++---
 gdb/testsuite/gdb.objc/objcdecode.m |  6 +++---
 gdb/testsuite/lib/gdb.exp           | 10 +++-------
 4 files changed, 12 insertions(+), 16 deletions(-)

diff --git a/gdb/testsuite/gdb.objc/basicclass.m b/gdb/testsuite/gdb.objc/basicclass.m
index d9b3f23954c..d1d54dfff19 100644
--- a/gdb/testsuite/gdb.objc/basicclass.m
+++ b/gdb/testsuite/gdb.objc/basicclass.m
@@ -1,7 +1,7 @@
 #include <stdio.h>
-#include <objc/Object.h>
+#include <Foundation/NSObject.h>
 
-@interface BasicClass: Object
+@interface BasicClass: NSObject
 {
   id object;
 }
@@ -75,7 +75,7 @@ const char *_NSPrintForDebugger(id object)
 {
   /* This is not really what _NSPrintForDebugger should do, but it
      is a simple test if gdb can call this function */
-  if (object && [object respondsTo: @selector(myDescription)])
+  if (object)
     return [object myDescription];
 
   return NULL;
diff --git a/gdb/testsuite/gdb.objc/nondebug.m b/gdb/testsuite/gdb.objc/nondebug.m
index 352a71c30e3..1ab876443a4 100644
--- a/gdb/testsuite/gdb.objc/nondebug.m
+++ b/gdb/testsuite/gdb.objc/nondebug.m
@@ -1,11 +1,11 @@
 #include <stdio.h>
-#include <objc/Object.h>
+#include <Foundation/NSObject.h>
 
-@interface NonDebug: Object
+@interface NonDebug: NSObject
 {
 }
 @end
-@interface NonDebug2: Object
+@interface NonDebug2: NSObject
 {
 }
 @end
diff --git a/gdb/testsuite/gdb.objc/objcdecode.m b/gdb/testsuite/gdb.objc/objcdecode.m
index a061661ed93..78ff301f3e0 100644
--- a/gdb/testsuite/gdb.objc/objcdecode.m
+++ b/gdb/testsuite/gdb.objc/objcdecode.m
@@ -1,7 +1,7 @@
 #include <stdio.h>
-#include <objc/Object.h>
+#include <Foundation/NSObject.h>
 
-@interface Decode: Object
+@interface Decode: NSObject
 {
 }
 - multipleDef;
@@ -43,7 +43,7 @@ const char *_NSPrintForDebugger(id object)
 {
   /* This is not really what _NSPrintForDebugger should do, but it
      is a simple test if gdb can call this function */
-  if (object && [object respondsTo: @selector(myDescription)])
+  if (object)
     return [object myDescription];
 
   return NULL;
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 856c96771c6..97a9692b4ce 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -6884,15 +6884,11 @@ proc gdb_compile_shlib_pthreads {sources dest options} {
 proc gdb_compile_objc {source dest type options} {
     set built_binfile 0
     set why_msg "unrecognized error"
-    foreach lib {-lobjc -lpthreads -lpthread -lthread solaris} {
+    set base_libs {-lgnustep-base -lobjc}
+    foreach lib {-lpthreads -lpthread -lthread "-lpthread -lposix4"} {
         # This kind of wipes out whatever libs the caller may have
         # set.  Or maybe theirs will override ours.  How infelicitous.
-        if { $lib == "solaris" } {
-            set lib "-lpthread -lposix4"
-	}
-        if { $lib != "-lobjc" } {
-	  set lib "-lobjc $lib"
-	}
+	set lib "$base_libs $lib"
         set options_with_lib [concat $options [list libs=$lib quiet]]
         set ccout [gdb_compile $source $dest $type $options_with_lib]
         switch -regexp -- $ccout {
-- 
2.49.0


  parent reply	other threads:[~2025-11-17  1:33 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-17  1:26 [PATCH 0/7] Objective-C fixes Tom Tromey
2025-11-17  1:27 ` [PATCH 1/7] Reformat gdb.objc tests Tom Tromey
2025-11-17  1:27 ` Tom Tromey [this message]
2025-11-17 10:09   ` [PATCH 2/7] Make the gdb.objc tests compile Matt Rice
2025-11-18  0:51     ` Tom Tromey
2025-11-18  1:12       ` Matt Rice
2025-12-02 16:20         ` Tom Tromey
2025-12-03 15:24           ` Matt Rice
2025-11-17  1:27 ` [PATCH 3/7] Minor fixes to make gdb.objc tests pass Tom Tromey
2025-11-17  1:27 ` [PATCH 4/7] Rename lookup_struct_typedef Tom Tromey
2025-11-17  1:27 ` [PATCH 5/7] Remove a couple Objective-C expression helpers Tom Tromey
2025-11-17  1:27 ` [PATCH 6/7] Avoid crash with "NSString" literals Tom Tromey
2025-11-17  1:27 ` [PATCH 7/7] Rewrite the @selector code Tom Tromey

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20251117012752.2657208-3-tom@tromey.com \
    --to=tom@tromey.com \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox