From owner-freebsd-alpha Mon Jun 7 8:57:44 1999 Delivered-To: freebsd-alpha@freebsd.org Received: from gate.keisu.t.u-tokyo.ac.jp (ns06.t.u-tokyo.ac.jp [133.11.68.1]) by hub.freebsd.org (Postfix) with SMTP id 655331575E for ; Mon, 7 Jun 1999 08:57:39 -0700 (PDT) (envelope-from simokawa@sat.t.u-tokyo.ac.jp) Received: (qmail 826 invoked from network); 7 Jun 1999 15:57:39 -0000 Received: from sylph.sat.t.u-tokyo.ac.jp (10.6.1.20) by ns06.t.u-tokyo.ac.jp with SMTP; 7 Jun 1999 15:57:39 -0000 Received: from ett.sat.t.u-tokyo.ac.jp (ett.sat.t.u-tokyo.ac.jp [10.6.1.30]) by sylph.sat.t.u-tokyo.ac.jp (Postfix) with ESMTP id E44432DAA9; Tue, 8 Jun 1999 00:57:38 +0900 (JST) Received: from ett.sat.t.u-tokyo.ac.jp by ett.sat.t.u-tokyo.ac.jp (8.9.3/sat-V0.6) id AAA68378; Tue, 8 Jun 1999 00:57:38 +0900 (JST) Date: Tue, 08 Jun 1999 00:57:36 +0900 Message-ID: <14171.60400.466517.68187Y@ett.sat.t.u-tokyo.ac.jp> From: Hidetoshi Shimokawa To: jdp@FreeBSD.org Cc: freebsd-alpha@freebsd.org Subject: Re: cvs commit: src/lib/csu/alpha crtbegin.c In-Reply-To: In your message of "Sun, 6 Jun 1999 08:59:09 -0700 (PDT)" <199906061559.IAA28808@freefall.freebsd.org> References: <199906061559.IAA28808@freefall.freebsd.org> User-Agent: Wanderlust/1.0.0 (Kokomo) SEMI/1.13.3 (Komaiko) FLIM/1.12.5 (Hirahata) MULE XEmacs/21.2 (beta13) (Demeter) (i386-unknown-freebsd3.1) X-Face: OE([KxWyJI0r[R~S/>7ia}SJ)i%a,$-9%7{*yihQk|]gl}2p#"oXmX/fT}Bn7:#j7i14gu$ jgR\S*&C3R/pJXstrtab + def->st_name, basename(obj->path), target, basename(defobj->path)); + dbg("where (%p) %p -> %p", where, *where, target); + *where = (Elf_Addr) target; return target; } 2) run 'LD_DEBUG=yes /usr/libexec/elf/gdb' ... ... "malloc" in "gdb" ==> 0x1602a9580 in "libc.so.3" where (0x120187bc0) 0x1602a9580 -> 0x1602a9580 "malloc" in "gdb" ==> 0x1602a9580 in "libc.so.3" where (0x120187bc0) 0x1602a9580 -> 0x1602a9580 "memcpy" in "gdb" ==> 0x1602a9c40 in "libc.so.3" where (0x120187bb8) 0x1602a9c40 -> 0x1602a9c40 "malloc" in "gdb" ==> 0x1602a9580 in "libc.so.3" where (0x120187bc0) 0x1602a9580 -> 0x1602a9580 "malloc" in "gdb" ==> 0x1602a9580 in "libc.so.3" where (0x120187bc0) 0x1602a9580 -> 0x1602a9580 "malloc" in "gdb" ==> 0x1602a9580 in "libc.so.3" where (0x120187bc0) 0x1602a9580 -> 0x1602a9580 "memcpy" in "gdb" ==> 0x1602a9c40 in "libc.so.3" where (0x120187bb8) 0x1602a9c40 -> 0x1602a9c40 "malloc" in "gdb" ==> 0x1602a9580 in "libc.so.3" ... ... I think rewriting jump slot should be once for each function. This problem seems still exist after make world with this commit. Do you have any idea about this? /\ Hidetoshi Shimokawa \/ simokawa@sat.t.u-tokyo.ac.jp PGP public key: finger -l simokawa@sat.t.u-tokyo.ac.jp At Sun, 6 Jun 1999 08:59:09 -0700 (PDT), John Polstra wrote: > > jdp 1999/06/06 08:59:09 PDT > > Modified files: > lib/csu/alpha crtbegin.c > Log: > Call do_ctors() and do_dtors() using indirect calls through function > pointers. The calls are in different sections from the functions > being called, and they can potentially be far away. On a very large > program, the 21-bit displacement field of the BSR instruction > overflowed at link time. > > Revision Changes Path > 1.4 +12 -3 src/lib/csu/alpha/crtbegin.c > To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-alpha" in the body of the message