public inbox for linux-ia64@vger.kernel.org
 help / color / mirror / Atom feed
* [Linux-ia64] Tool chain ld program -Previous message incomplete
@ 2000-04-06 13:25 roneng
  2000-04-06 19:50 ` Jim Wilson
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: roneng @ 2000-04-06 13:25 UTC (permalink / raw)
  To: linux-ia64



I sent the previous email before it was complete by mistake
here is the complete version

I've been using the ld program in the Turbo linux distribution to build a
large (96Meg) shared library. The link seems
to be failing with Reallocation error.
To fix this problem I recompile the ld program in the Tool chain sources
from Cygnus with the following modification to
MAXPAGESIZE parameter in the
ld/emulparams/elf64_ia64.sh
originally the file had MAXPAGESIZE =0x10000
I modified this to MAXPAGESIZE = 0x10000000

The changed.Cygnus file shows that this parameter was changed on 1999-11-06
by cygnus from 0x10000000 to 0x10000,
which was the original value was wondering if anyone knew why this changed
occurred, and if undoing the change is I did will
cause any problems?

Thank you,
Ronen Grosman
- Phone: Internal:778-4478     External: (416)-448-4478    Fax:
(416)448-4414
- e-mail roneng@ca.ibm.com


---------------------- Forwarded by Ronen Grosman/Toronto/IBM on 04/06/2000
09:22 AM ---------------------------

Ronen Grosman
04/06/2000 09:11 AM

To:   linux-ia64@linuxia64.org
cc:
From: Ronen Grosman/Toronto/IBM@IBMCA
Subject:  Tool chain ld program



I've been using the ld program in the Turbo linux distribution to build a
large (96Meg) shared library. The link seems
to be failing with Realocation error.
To fix the program I recompile the ld program in the Tool chain sources
from Cygnus with the following modification to
MAXPAGESIZE parameter in the
ld/emulparams/elf64_ia64.sh
originally the file had MAXPAGESIZE =0x10000
I modified this to MAXPAGESIZE = 0x10000000

In Changed

Ronen Grosman
- Phone: Internal:778-4478     External: (416)-448-4478    Fax:
(416)448-4414
- e-mail roneng@ca.ibm.com







^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Linux-ia64] Tool chain ld program -Previous message incomplete
  2000-04-06 13:25 [Linux-ia64] Tool chain ld program -Previous message incomplete roneng
@ 2000-04-06 19:50 ` Jim Wilson
  2000-04-10 15:26 ` [Linux-ia64] Tool chain ld program -Previous message roneng
  2000-04-10 19:10 ` [Linux-ia64] Tool chain ld program -Previous message incomplete Jim Wilson
  2 siblings, 0 replies; 4+ messages in thread
From: Jim Wilson @ 2000-04-06 19:50 UTC (permalink / raw)
  To: linux-ia64

	The link seems to be failing with Reallocation error.

That isn't enough info to be useful.  Also, I suspect that you got a "reloc"
error not "Realloc" error.

	The changed.Cygnus file shows that this parameter was changed on 1999-11-06
	by cygnus from 0x10000000 to 0x10000,
	which was the original value was wondering if anyone knew why this changed
	occurred, and if undoing the change is I did will
	cause any problems?

I don't recall exactly what it was.  I believe it had something to do with how
physical and virtual addresses in an executable got allocated.  With the
smaller page size, I think we either got smaller executables (less padding)
or smaller load images (less wasted virtual address space).  Or maybe it was
done because the resulting executables could be loaded more efficiently.  It
should be visible if you look at the resulting executable.

In any case, we aren't going to change it back unless we get some explanation
of why the original value is better than the current value, so I need a
better explanation of what is going on, or a better bug report.

Jim



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Linux-ia64] Tool chain ld program -Previous message
  2000-04-06 13:25 [Linux-ia64] Tool chain ld program -Previous message incomplete roneng
  2000-04-06 19:50 ` Jim Wilson
@ 2000-04-10 15:26 ` roneng
  2000-04-10 19:10 ` [Linux-ia64] Tool chain ld program -Previous message incomplete Jim Wilson
  2 siblings, 0 replies; 4+ messages in thread
From: roneng @ 2000-04-10 15:26 UTC (permalink / raw)
  To: linux-ia64



The exact error I am getting is the following
usr/lib/gcc-lib/ia64-cygnus-linux/2.9-ia64-000216/crtbeginS.o(.fini_0x2):
relocation truncated to fit:  PCREL21B fini
collect2:  ld returned 1 exit status

Changing the max page size seems to solve this problem. But the error
message seems to indicate
that this might be a problem with the maximum size of shared library ld can
create. Other then changing the
max page size Is there a command line parameter of code change to ld that
will allow larger static library sizes?

Thanks,
Ronen Grosman
- e-mail roneng@ca.ibm.com



Jim Wilson <wilson@cygnus.com> on 04/06/2000 03:50:22 PM

Please respond to Jim Wilson <wilson@cygnus.com>

To:   Ronen Grosman/Toronto/IBM@IBMCA
cc:   linux-ia64@linuxia64.org
Subject:  Re: [Linux-ia64] Tool chain ld program -Previous message
      incomplete




     The link seems to be failing with Reallocation error.

That isn't enough info to be useful.  Also, I suspect that you got a
"reloc"
error not "Realloc" error.

     The changed.Cygnus file shows that this parameter was changed on
1999-11-06
     by cygnus from 0x10000000 to 0x10000,
     which was the original value was wondering if anyone knew why this
changed
     occurred, and if undoing the change is I did will
     cause any problems?

I don't recall exactly what it was.  I believe it had something to do with
how
physical and virtual addresses in an executable got allocated.  With the
smaller page size, I think we either got smaller executables (less padding)
or smaller load images (less wasted virtual address space).  Or maybe it
was
done because the resulting executables could be loaded more efficiently.
It
should be visible if you look at the resulting executable.

In any case, we aren't going to change it back unless we get some
explanation
of why the original value is better than the current value, so I need a
better explanation of what is going on, or a better bug report.

Jim






^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Linux-ia64] Tool chain ld program -Previous message incomplete
  2000-04-06 13:25 [Linux-ia64] Tool chain ld program -Previous message incomplete roneng
  2000-04-06 19:50 ` Jim Wilson
  2000-04-10 15:26 ` [Linux-ia64] Tool chain ld program -Previous message roneng
@ 2000-04-10 19:10 ` Jim Wilson
  2 siblings, 0 replies; 4+ messages in thread
From: Jim Wilson @ 2000-04-10 19:10 UTC (permalink / raw)
  To: linux-ia64

I talked to our linker expert late last week.  He mentioned that if a branch
target is out of range of a branch, the linker is supposed to create a
trampoline to make the branch reach the target, but that our linker does not
support this yet.  This is the error that you are seeing.  We have gotten two
reports of this problem now, so we are starting to work on a solution.

Since branches have 21 bits of displacement, and bundles are 16 bytes, you
need a branch spanning more than +/- 16MB before you can see this problem.

Jim



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2000-04-10 19:10 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2000-04-06 13:25 [Linux-ia64] Tool chain ld program -Previous message incomplete roneng
2000-04-06 19:50 ` Jim Wilson
2000-04-10 15:26 ` [Linux-ia64] Tool chain ld program -Previous message roneng
2000-04-10 19:10 ` [Linux-ia64] Tool chain ld program -Previous message incomplete Jim Wilson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox