Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 5 Feb 2005 14:00:05 +0300 (MSK)
From:      Dmitry Morozovsky <marck@rinet.ru>
To:        NAKATA Maho <chat95@mac.com>
Cc:        openoffice@freebsd.org
Subject:   Re: FreeBSD Port: openoffice-1.1-1.1.4
Message-ID:  <20050205135814.J17144@woozle.rinet.ru>
In-Reply-To: <20050202.130333.465786519.chat95@mac.com>
References:  <200501310812.42645.dmk@ncf.ca> <20050202.130333.465786519.chat95@mac.com>

next in thread | previous in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]

On Wed, 2 Feb 2005, NAKATA Maho wrote:

NM> > Any suggestions on what I can do to troubleshoot this?
NM> 
NM> I recieved another e-mail and I thought that for 4.11 we have rtld.c 
NM> which doesn't depend on _end symbol. but it still depend on _end.
NM> 
NM> please apply this patch
NM> http://people.freebsd.org/~maho/ooo/patch-rtld.c
NM> and rebuild your rtld.c

Your patch is for HEAD/RELENG_5. Here is the patch for contemporary RELENG_4

I'll try to rebuild OOo 1.1.4 and follow up with the result.

Sincerely,
D.Marck                                     [DM5020, MCK-RIPE, DM3-RIPN]
------------------------------------------------------------------------
*** Dmitry Morozovsky --- D.Marck --- Wild Woozle --- marck@rinet.ru ***
------------------------------------------------------------------------
[-- Attachment #2 --]
Index: rtld.c
===================================================================
RCS file: /home/ncvs/src/libexec/rtld-elf/rtld.c,v
retrieving revision 1.43.2.18
diff -u -r1.43.2.18 rtld.c
--- rtld.c	11 Jun 2004 09:06:27 -0000	1.43.2.18
+++ rtld.c	5 Feb 2005 10:58:04 -0000
@@ -54,7 +54,6 @@
 #include "rtld.h"
 #include "libmap.h"
 
-#define END_SYM		"_end"
 #define PATH_RTLD	"/usr/libexec/ld-elf.so.1"
 
 /* Types. */
@@ -1220,18 +1219,12 @@
 static Obj_Entry *
 obj_from_addr(const void *addr)
 {
-    unsigned long endhash;
     Obj_Entry *obj;
 
-    endhash = elf_hash(END_SYM);
     for (obj = obj_list;  obj != NULL;  obj = obj->next) {
-	const Elf_Sym *endsym;
-
 	if (addr < (void *) obj->mapbase)
 	    continue;
-	if ((endsym = symlook_obj(END_SYM, endhash, obj, true)) == NULL)
-	    continue;	/* No "end" symbol?! */
-	if (addr < (void *) (obj->relocbase + endsym->st_value))
+	if (addr < (void *) (obj->mapbase + obj->mapsize))
 	    return obj;
     }
     return NULL;

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050205135814.J17144>