* [PATCH] binutils-crossdk: Fix interp size expansion
@ 2012-10-02 5:36 Khem Raj
2012-10-02 7:33 ` Khem Raj
0 siblings, 1 reply; 4+ messages in thread
From: Khem Raj @ 2012-10-02 5:36 UTC (permalink / raw)
To: openembedded-core
Currently for sdk binutils we expand the size of .interp
section to 0x1000 assuming that its at the beginning of
the linker map but there may be program header before that
so actually we want to add 0x1000 - sizeof(.interp) section
to current location and not assign is absolutely to 0x1000
This fixes errors like
built in linker script:11 cannot move location counter backwards (from
0000000000401054 to 0000000000401000)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
.../binutils/binutils-crosssdk_2.22.bb | 2 +-
.../binutils/binutils/relocatable_sdk.patch | 10 +++++-----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/meta/recipes-devtools/binutils/binutils-crosssdk_2.22.bb b/meta/recipes-devtools/binutils/binutils-crosssdk_2.22.bb
index c936549..d3c25b6 100644
--- a/meta/recipes-devtools/binutils/binutils-crosssdk_2.22.bb
+++ b/meta/recipes-devtools/binutils/binutils-crosssdk_2.22.bb
@@ -2,7 +2,7 @@ require binutils-cross_${PV}.bb
inherit crosssdk
-PR = "r1"
+PR = "r2"
PROVIDES = "virtual/${TARGET_PREFIX}binutils-crosssdk"
diff --git a/meta/recipes-devtools/binutils/binutils/relocatable_sdk.patch b/meta/recipes-devtools/binutils/binutils/relocatable_sdk.patch
index 33f9e68..4a2494a 100644
--- a/meta/recipes-devtools/binutils/binutils/relocatable_sdk.patch
+++ b/meta/recipes-devtools/binutils/binutils/relocatable_sdk.patch
@@ -7,16 +7,16 @@ by the relocating script.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
-Index: binutils-2.22/ld/scripttempl/elf.sc
+Index: git/ld/scripttempl/elf.sc
===================================================================
---- binutils-2.22.orig/ld/scripttempl/elf.sc
-+++ binutils-2.22/ld/scripttempl/elf.sc
-@@ -116,7 +116,7 @@ if test -n "${COMMONPAGESIZE}"; then
+--- git.orig/ld/scripttempl/elf.sc 2012-10-01 21:42:18.729294685 -0700
++++ git/ld/scripttempl/elf.sc 2012-10-01 22:26:35.149173335 -0700
+@@ -125,7 +125,7 @@
DATA_SEGMENT_RELRO_END=". = DATA_SEGMENT_RELRO_END (${SEPARATE_GOTPLT-0}, .);"
fi
if test -z "${INITIAL_READONLY_SECTIONS}${CREATE_SHLIB}"; then
- INITIAL_READONLY_SECTIONS=".interp ${RELOCATING-0} : { *(.interp) }"
-+ INITIAL_READONLY_SECTIONS=".interp ${RELOCATING-0} : { *(.interp); . = 0x1000; }"
++ INITIAL_READONLY_SECTIONS=".interp ${RELOCATING-0} : { *(.interp); . = (. & 0x1000) + 0x1000; }"
fi
if test -z "$PLT"; then
IPLT=".iplt ${RELOCATING-0} : { *(.iplt) }"
--
1.7.9.5
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH] binutils-crossdk: Fix interp size expansion
2012-10-02 5:36 [PATCH] binutils-crossdk: Fix interp size expansion Khem Raj
@ 2012-10-02 7:33 ` Khem Raj
2012-10-02 9:05 ` Laurentiu Palcu
2012-11-16 18:57 ` Ruslan Babayev
0 siblings, 2 replies; 4+ messages in thread
From: Khem Raj @ 2012-10-02 7:33 UTC (permalink / raw)
To: openembedded-core
i need to check it with 1 more case. Please hold on for applying it. I
welcome testing
On Mon, Oct 1, 2012 at 10:36 PM, Khem Raj <raj.khem@gmail.com> wrote:
> Currently for sdk binutils we expand the size of .interp
> section to 0x1000 assuming that its at the beginning of
> the linker map but there may be program header before that
> so actually we want to add 0x1000 - sizeof(.interp) section
> to current location and not assign is absolutely to 0x1000
>
> This fixes errors like
>
> built in linker script:11 cannot move location counter backwards (from
> 0000000000401054 to 0000000000401000)
>
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ---
> .../binutils/binutils-crosssdk_2.22.bb | 2 +-
> .../binutils/binutils/relocatable_sdk.patch | 10 +++++-----
> 2 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/meta/recipes-devtools/binutils/binutils-crosssdk_2.22.bb b/meta/recipes-devtools/binutils/binutils-crosssdk_2.22.bb
> index c936549..d3c25b6 100644
> --- a/meta/recipes-devtools/binutils/binutils-crosssdk_2.22.bb
> +++ b/meta/recipes-devtools/binutils/binutils-crosssdk_2.22.bb
> @@ -2,7 +2,7 @@ require binutils-cross_${PV}.bb
>
> inherit crosssdk
>
> -PR = "r1"
> +PR = "r2"
>
> PROVIDES = "virtual/${TARGET_PREFIX}binutils-crosssdk"
>
> diff --git a/meta/recipes-devtools/binutils/binutils/relocatable_sdk.patch b/meta/recipes-devtools/binutils/binutils/relocatable_sdk.patch
> index 33f9e68..4a2494a 100644
> --- a/meta/recipes-devtools/binutils/binutils/relocatable_sdk.patch
> +++ b/meta/recipes-devtools/binutils/binutils/relocatable_sdk.patch
> @@ -7,16 +7,16 @@ by the relocating script.
>
> Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
>
> -Index: binutils-2.22/ld/scripttempl/elf.sc
> +Index: git/ld/scripttempl/elf.sc
> ===================================================================
> ---- binutils-2.22.orig/ld/scripttempl/elf.sc
> -+++ binutils-2.22/ld/scripttempl/elf.sc
> -@@ -116,7 +116,7 @@ if test -n "${COMMONPAGESIZE}"; then
> +--- git.orig/ld/scripttempl/elf.sc 2012-10-01 21:42:18.729294685 -0700
> ++++ git/ld/scripttempl/elf.sc 2012-10-01 22:26:35.149173335 -0700
> +@@ -125,7 +125,7 @@
> DATA_SEGMENT_RELRO_END=". = DATA_SEGMENT_RELRO_END (${SEPARATE_GOTPLT-0}, .);"
> fi
> if test -z "${INITIAL_READONLY_SECTIONS}${CREATE_SHLIB}"; then
> - INITIAL_READONLY_SECTIONS=".interp ${RELOCATING-0} : { *(.interp) }"
> -+ INITIAL_READONLY_SECTIONS=".interp ${RELOCATING-0} : { *(.interp); . = 0x1000; }"
> ++ INITIAL_READONLY_SECTIONS=".interp ${RELOCATING-0} : { *(.interp); . = (. & 0x1000) + 0x1000; }"
> fi
> if test -z "$PLT"; then
> IPLT=".iplt ${RELOCATING-0} : { *(.iplt) }"
> --
> 1.7.9.5
>
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH] binutils-crossdk: Fix interp size expansion
2012-10-02 7:33 ` Khem Raj
@ 2012-10-02 9:05 ` Laurentiu Palcu
2012-11-16 18:57 ` Ruslan Babayev
1 sibling, 0 replies; 4+ messages in thread
From: Laurentiu Palcu @ 2012-10-02 9:05 UTC (permalink / raw)
To: openembedded-core
On 10/02/2012 10:33 AM, Khem Raj wrote:
> i need to check it with 1 more case. Please hold on for applying it. I
> welcome testing
>
> On Mon, Oct 1, 2012 at 10:36 PM, Khem Raj <raj.khem@gmail.com> wrote:
>> Currently for sdk binutils we expand the size of .interp
>> section to 0x1000 assuming that its at the beginning of
>> the linker map but there may be program header before that
>> so actually we want to add 0x1000 - sizeof(.interp) section
>> to current location and not assign is absolutely to 0x1000
Why does it matter if there is another program header before .interp?
The .interp section should start at the end of the previous section.
>>
>> This fixes errors like
>>
>> built in linker script:11 cannot move location counter backwards (from
>> 0000000000401054 to 0000000000401000)
This error usually means that the data inside that section exceeds the
allocated size of the section. Assuming .interp section is the first,
the linker is trying to squeeze 0x1054 bytes in a 0x1000 bytes section.
And that is kind of weird. We might be missing something here...
>>
>> Signed-off-by: Khem Raj <raj.khem@gmail.com>
>> ---
>> .../binutils/binutils-crosssdk_2.22.bb | 2 +-
>> .../binutils/binutils/relocatable_sdk.patch | 10 +++++-----
>> 2 files changed, 6 insertions(+), 6 deletions(-)
>>
>> diff --git a/meta/recipes-devtools/binutils/binutils-crosssdk_2.22.bb b/meta/recipes-devtools/binutils/binutils-crosssdk_2.22.bb
>> index c936549..d3c25b6 100644
>> --- a/meta/recipes-devtools/binutils/binutils-crosssdk_2.22.bb
>> +++ b/meta/recipes-devtools/binutils/binutils-crosssdk_2.22.bb
>> @@ -2,7 +2,7 @@ require binutils-cross_${PV}.bb
>>
>> inherit crosssdk
>>
>> -PR = "r1"
>> +PR = "r2"
>>
>> PROVIDES = "virtual/${TARGET_PREFIX}binutils-crosssdk"
>>
>> diff --git a/meta/recipes-devtools/binutils/binutils/relocatable_sdk.patch b/meta/recipes-devtools/binutils/binutils/relocatable_sdk.patch
>> index 33f9e68..4a2494a 100644
>> --- a/meta/recipes-devtools/binutils/binutils/relocatable_sdk.patch
>> +++ b/meta/recipes-devtools/binutils/binutils/relocatable_sdk.patch
>> @@ -7,16 +7,16 @@ by the relocating script.
>>
>> Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
>>
>> -Index: binutils-2.22/ld/scripttempl/elf.sc
>> +Index: git/ld/scripttempl/elf.sc
>> ===================================================================
>> ---- binutils-2.22.orig/ld/scripttempl/elf.sc
>> -+++ binutils-2.22/ld/scripttempl/elf.sc
>> -@@ -116,7 +116,7 @@ if test -n "${COMMONPAGESIZE}"; then
>> +--- git.orig/ld/scripttempl/elf.sc 2012-10-01 21:42:18.729294685 -0700
>> ++++ git/ld/scripttempl/elf.sc 2012-10-01 22:26:35.149173335 -0700
>> +@@ -125,7 +125,7 @@
>> DATA_SEGMENT_RELRO_END=". = DATA_SEGMENT_RELRO_END (${SEPARATE_GOTPLT-0}, .);"
>> fi
>> if test -z "${INITIAL_READONLY_SECTIONS}${CREATE_SHLIB}"; then
>> - INITIAL_READONLY_SECTIONS=".interp ${RELOCATING-0} : { *(.interp) }"
>> -+ INITIAL_READONLY_SECTIONS=".interp ${RELOCATING-0} : { *(.interp); . = 0x1000; }"
>> ++ INITIAL_READONLY_SECTIONS=".interp ${RELOCATING-0} : { *(.interp); . = (. & 0x1000) + 0x1000; }"
This line confuses me. You will have here an .interp size of 0x1000 or
0x2000. Is this the intent?
Thanks,
Laurentiu
>> fi
>> if test -z "$PLT"; then
>> IPLT=".iplt ${RELOCATING-0} : { *(.iplt) }"
>> --
>> 1.7.9.5
>>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH] binutils-crossdk: Fix interp size expansion
2012-10-02 7:33 ` Khem Raj
2012-10-02 9:05 ` Laurentiu Palcu
@ 2012-11-16 18:57 ` Ruslan Babayev
1 sibling, 0 replies; 4+ messages in thread
From: Ruslan Babayev @ 2012-11-16 18:57 UTC (permalink / raw)
To: openembedded-core
Khem Raj <raj.khem@...> writes:
>
> i need to check it with 1 more case. Please hold on for applying it. I
> welcome testing
>
I tried 'bitbake meta-toolchain' with poky danny branch.
Your patch fixes the following eror in nativesdk-eglibc-2.16-r15+svnr20393
built in linker script:11 cannot move location counter backwards
(from 0000000000401048 to 0000000000401000)
collect2: error: ld returned 1 exit status
But now I get:
..tmp/work/x86_64-nativesdk-pokysdk-linux/
nativesdk-qemu-1.2.0-r3/qemu-1.2.0/x86_64.ld:9
cannot move location counter backwards (from 0000000060001048
to 0000000060001000)
collect2: error: ld returned 1 exit status
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2012-11-16 19:13 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-10-02 5:36 [PATCH] binutils-crossdk: Fix interp size expansion Khem Raj
2012-10-02 7:33 ` Khem Raj
2012-10-02 9:05 ` Laurentiu Palcu
2012-11-16 18:57 ` Ruslan Babayev
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox