This is the mail archive of the
archer@sourceware.org
mailing list for the Archer project.
Re: Fixes for Mac OS X/x86 building/running
- From: Tom Tromey <tromey at redhat dot com>
- To: Jonas Maebe <jonas dot maebe at elis dot ugent dot be>
- Cc: archer at sourceware dot org
- Date: Thu, 12 Mar 2009 14:54:28 -0600
- Subject: Re: Fixes for Mac OS X/x86 building/running
- References: <DF84EEF9-5DB2-4502-934F-D98F023B1D81@elis.ugent.be>
- Reply-to: Tom Tromey <tromey at redhat dot com>
>>>>> "Jonas" == Jonas Maebe <jonas.maebe@elis.ugent.be> writes:
Jonas> Archer (archer branch) is currently broken on Mac OS X/x86. The
Jonas> attached (minor) patches fix this:
Thanks.
Do you have a gdb copyright assignment in place?
For non-trivial patches we have to get this... I can get you started
on the process if you aren't already set up.
Jonas> * darwin-nat.c.patch fixes compilation errors due to some missing
Jonas> "struct target_ops *" parameters. Probably caused by:
This patch should go to gdb-patches, like Joel said.
Jonas> * machoread.c.patch fixes a crash caused by a missing function pointer
Jonas> field (sym_read_psymbols) initializer in the middle of macho's struct
Jonas> sym_fns (so the subsequent function pointer initializers were all
Jonas> shifted). I've simply copied the elfread.c implementation of
Jonas> read_psyms (because it appeared to be generic) and it seems to work
Jonas> fine (if it's called at all).
I've appended the corresponding change from elfread.c.
You probably want something a bit more like this. The delayed symfile
stuff only works if you also arrange to create the quick addrmap.
Or, you can just set the new field to NULL. All this means is that
you won't get lazy loading of debug info.
Tom
diff --git a/gdb/elfread.c b/gdb/elfread.c
index ff220a2..13158f4 100644
--- a/gdb/elfread.c
+++ b/gdb/elfread.c
@@ -727,10 +727,18 @@ elf_symfile_read (struct objfile *objfile, int mainline)
str_sect->filepos,
bfd_section_size (abfd, str_sect));
}
+
+ if (dwarf2_has_info (objfile))
+ dwarf2_create_quick_addrmap (objfile);
+}
+
+static void
+read_psyms (struct objfile *objfile)
+{
if (dwarf2_has_info (objfile))
{
/* DWARF 2 sections */
- dwarf2_build_psymtabs (objfile, mainline);
+ dwarf2_build_psymtabs (objfile, 0);
}
/* FIXME: kettenis/20030504: This still needs to be integrated with