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
next prev 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