This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: Illegal instruction After base addr alterd
- From: James E Wilson <wilson at specifixinc dot com>
- To: Zhenyu Guo <guozy03 at mails dot tsinghua dot edu dot cn>
- Cc: 'Binutils' <binutils at sources dot redhat dot com>
- Date: Thu, 07 Apr 2005 20:44:55 -0700
- Subject: Re: Illegal instruction After base addr alterd
- References: <000701c53be7$8523b080$0500000a@appletree>
On Thu, 2005-04-07 at 20:03, Zhenyu Guo wrote:
> . = 0x5000000000000000 + SIZEOF_HEADERS; <<-- used to be
> 0x4000000000000000
IA-64 addresses have 4-bits for segment selection, and 60-bits of offset
within a segment. Changing the 0x4 to a 0x5 means you are moving the
code to a different segment. I don't think that is wise. I don't know
offhand exactly how the kernel handles the 16 segments, but something
like 0x48... might be more likely to work than 0x5...
There is an IA-64 linux kernel book written by David Mosberger that
might explain some of this stuff. I don't know for sure though, as I
don't have a copy.
--
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com