Unverified Commit 6b64c60b by Rémi Verschelde Committed by GitHub

Merge pull request #35209 from RandomShaper/fix_pck_embed_linux

Fix error exporting to X11 with embedded PCK
parents f2aa99a8 4eeae592
...@@ -171,7 +171,7 @@ def configure(env): ...@@ -171,7 +171,7 @@ def configure(env):
else: else:
env.Append(CCFLAGS=['-flto']) env.Append(CCFLAGS=['-flto'])
env.Append(LINKFLAGS=['-flto']) env.Append(LINKFLAGS=['-flto'])
if not env['use_llvm']: if not env['use_llvm']:
env['RANLIB'] = 'gcc-ranlib' env['RANLIB'] = 'gcc-ranlib'
env['AR'] = 'gcc-ar' env['AR'] = 'gcc-ar'
...@@ -329,9 +329,15 @@ def configure(env): ...@@ -329,9 +329,15 @@ def configure(env):
if env["execinfo"]: if env["execinfo"]:
env.Append(LIBS=['execinfo']) env.Append(LIBS=['execinfo'])
if not env['tools']: if not env['tools']:
env.Append(LINKFLAGS=['-T', 'platform/x11/pck_embed.ld']) import subprocess
import re
binutils_version = re.search('\s(\d+\.\d+)', str(subprocess.check_output(['ld', '-v']))).group(1)
if float(binutils_version) >= 2.30:
env.Append(LINKFLAGS=['-T', 'platform/x11/pck_embed.ld'])
else:
env.Append(LINKFLAGS=['-T', 'platform/x11/pck_embed.legacy.ld'])
## Cross-compilation ## Cross-compilation
......
SECTIONS SECTIONS
{ {
/* Add a zero-sized section; the exporter will patch it to enclose the data appended to the executable (embedded PCK) */ /* Add a zero-sized section; the exporter will patch it to enclose the data appended to the executable (embedded PCK) */
pck 0 (NOLOAD) : pck 0 (INFO) :
{ {
/* Just some content to avoid the linker discarding the section */ /* binutils >= 2.30 allow it being zero-sized, but needs something between the braces to keep the section */
. = ALIGN(8); . = ALIGN(8);
} }
} }
......
SECTIONS
{
/* The exporter will patch this section to enclose the data appended to the executable (embedded PCK) */
pck 0 (INFO) : AT ( ADDR (.rodata) + SIZEOF (.rodata) )
{
/* binutils < 2.30 need some actual content for the linker not to discard the section */
BYTE(0);
}
}
INSERT AFTER .rodata;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment