Cross-compilng a package: "Conflicting CPU architectures" error
Original Reporter info from Mantis: rusty_robot
-
Reporter name:
Original Reporter info from Mantis: rusty_robot
- Reporter name:
Description:
I have tried to use a runtime-only package in arm-embedded project. The lpk does not contain any custom settings - basically just a container for units. However when I try to compile my project, I'm getting "Conflicting CPU architectures 13/1" error.
Steps to reproduce:
I've attached an example which contains "app" project and "pkg" package (note that the app.lpi has hardcoded paths to "/usr/local/src/fpc-3.1.1").
Provided that you have arm-embedded toolchain and ppcrossarm, you can just run "lazbuild app.lpi".
I did not try to cross-compile on any other platforms
Additional information:
Log (ignore the link warnings)
$ lazbuild app.lpi
Info: (lazarus) Execute Title="Compile Project, OS: embedded, CPU: arm, Target: app"
Info: (lazarus) Working Directory="/home/user/code/crosspkg/"
Info: (lazarus) Executable="/usr/local/lib/fpc/3.1.1/ppcrossarm"
Info: (lazarus) Param[0]="-Tembedded"
Info: (lazarus) Param[1]="-Parm"
Info: (lazarus) Param[2]="-MObjFPC"
Info: (lazarus) Param[3]="-Scghi"
Info: (lazarus) Param[4]="-O1"
Info: (lazarus) Param[5]="-l"
Info: (lazarus) Param[6]="-vewnhibq"
Info: (lazarus) Param[7]="-Fi/home/user/code/crosspkg/lib/arm-embedded"
Info: (lazarus) Param[8]="-Fi/usr/local/src/fpc-3.1.1/fpc/rtl/embedded/arm"
Info: (lazarus) Param[9]="-Fu/usr/local/src/fpc-3.1.1/fpc/rtl/embedded/arm"
Info: (lazarus) Param[10]="-Fu/home/user/code/crosspkg/pkg/lib/arm-embedded"
Info: (lazarus) Param[11]="-Fu/home/user/code/crosspkg/"
Info: (lazarus) Param[12]="-FU/home/user/code/crosspkg/lib/arm-embedded/"
Info: (lazarus) Param[13]="-Cparmv7m"
Info: (lazarus) Param[14]="app.lpr"
Hint: (11030) Start of reading config file /etc/fpc.cfg
Hint: (11031) End of reading config file /etc/fpc.cfg
Free Pascal Compiler version 3.1.1 [2016/06/27] for arm
Copyright (c) 1993-2015 by Florian Klaempfl and others
(1002) Target OS: Embedded
(3104) Compiling app.lpr
/home/user/code/crosspkg/app.lpr(3,6) Hint: (5023) Unit "pkg_utils" not used in app
(9009) Assembling app
/usr/bin/arm-embedded-ld:link.res:25: warning: memory region ram' not declared<br/> /usr/bin/arm-embedded-ld: error: ./pkg/lib/arm-embedded/pkg_utils.o: Conflicting CPU architectures 13/1 <-----<br/> /usr/bin/arm-embedded-ld: failed to merge target specific data of file ./pkg/lib/arm-embedded/pkg_utils.o <-----<br/> /usr/bin/arm-embedded-ld: app.elf: warning: allocated section
.data' not in segment
(9015) Linking app
app.lpr(11) Error: (9013) Error while linking
app.lpr(11) Fatal: (10026) There were 1 errors compiling module, stopping
Fatal: (1018) Compilation aborted
Error: (lazarus) Compile Project, OS: embedded, CPU: arm, Target: app: stopped with exit code 256
ERROR: failed compiling of project /home/user/code/crosspkg/app.lpi
$ file ./pkg/lib/arm-embedded/pkg_utils.o
./pkg/lib/arm-embedded/pkg_utils.o: ELF 32-bit LSB relocatable, ARM, EABI5 version 1 (SYSV), not stripped
$ file ./lib/arm-embedded/app.o
./lib/arm-embedded/app.o: ELF 32-bit LSB relocatable, ARM, EABI5 version 1 (SYSV), not stripped
Mantis conversion info:
- Mantis ID: 31594
- Version: 2.3 (SVN)