Problemen met cross compilen Boost

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Andre-85
  • Registratie: April 2003
  • Niet online
Ik probeer Boost te cross compilen voor een ARM processor van Texas Instruments, vanuit een linux omgeving.

De toolchain hiervoor is gebaseerd op GCC. De verschillende tools (gcc, ar, ranlib) hebben als prexif "arm_v5t_le-" De documentatie van Boost over cross compilen is wat summier. Wat ik gedaan heb is het volgende:

In user-config.jam heb ik de volgende regel toegevoegd: using gcc : arm : arm_v5t_le-g++ ;
Aan bjam geef ik het volgende mee:
code:
1
bjam toolset=gcc-arm --toolset-root=/opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/bin <de rest van de build opties>


De optie --toolset-root heb ik hier gevonden.

Tijdens het linken van de applicatie (ik link tegen boost-system-mt) krijg ik de foutmelding: libboost_system-mt.a: could not read symbols: Archive has no index; run ranlib to add one

Wanneer ik arm_v5t_le-ranlib op dat archive uitvoer, kan ik daarna wel linken. Ik vermoed dat bjam gewoon "ar" aanroept en dus niet arm_v5t_le-ar. Klopt dit vermoeden? Kan ik bjam vertellen welke ar gebruikt moet worden?

Op een mailinglist kwam ik tegen dat je -sRANLIB -sAR kan gebruiken om het path naar ar en ranlib op te geven. Dit lijkt helaas niet meer ondersteund te worden. Ik heb geen idee hoe ik dit nu verder moet aan pakken...

Lorem
Whenever we feel the need to comment something, we write a method instead. - Martin Fowler
People who think they know everything really annoy those of us who know we don't - Bjarne Stroustrup


Acties:
  • 0 Henk 'm!

  • leroyk2
  • Registratie: Juli 2009
  • Niet online
Kan je geen symlink maken van arm_v5t_le-ar naar ar ?

Acties:
  • 0 Henk 'm!

  • Andre-85
  • Registratie: April 2003
  • Niet online
Dat is in princiepe een mogelijkheid, echter compileren wij de code ook voor het x86 platform. Het maken en wijzigen van symlinks is vanuit configratiemanagementoogpunt (mooi voor scrable) niet echt ideaal.

Buiten dat verwacht ik eigenlijk dat Boost hier wel voorzieningen voor heeft. En dat ik het gewoon niet goed doe ;)

edit, ok ik kantuurlijk wel in de toolset-root symlinks aanmaken. Dat verdient ook niet de schoonheidsprijs maar dat moet wel werken. Ga ik morgen in ieder geval even proberen.

[ Voor 21% gewijzigd door Andre-85 op 15-02-2010 20:06 ]

Lorem
Whenever we feel the need to comment something, we write a method instead. - Martin Fowler
People who think they know everything really annoy those of us who know we don't - Bjarne Stroustrup


Acties:
  • 0 Henk 'm!

  • EddoH
  • Registratie: Maart 2009
  • Niet online

EddoH

Backpfeifengesicht


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 01:39
Het moet met Boost Jam ook kunnen, maar ik weet niet precies hoe de Boost precies build.

Een makkelijke oplossing is symlinks toevoegen in een speciale directory en vervolgens je PATH updaten zodat die symlinks gevonden worden voor de native binutils (die dan min of meer onzichtbaar zijn voor Boost). Het verdient geen schoonheidsprijs, maar het is een optie.

Acties:
  • 0 Henk 'm!

  • Andre-85
  • Registratie: April 2003
  • Niet online
Thanks, die had was ik nog niet tegen gekomen. Enig idee waar <rc> voor staat? <archiver> is wel duidelijk ;)
Soultaker schreef op maandag 15 februari 2010 @ 21:55:
Het moet met Boost Jam ook kunnen, maar ik weet niet precies hoe de Boost precies build.

Een makkelijke oplossing is symlinks toevoegen in een speciale directory en vervolgens je PATH updaten zodat die symlinks gevonden worden voor de native binutils (die dan min of meer onzichtbaar zijn voor Boost). Het verdient geen schoonheidsprijs, maar het is een optie.
Het lijkt mij dat het met Boost Jam ook moet kunnen. Een oplossing in die richting zou ik erg fijn vinden :) Andere oplossingen blijft een beetje knutselwerk.

Lorem
Whenever we feel the need to comment something, we write a method instead. - Martin Fowler
People who think they know everything really annoy those of us who know we don't - Bjarne Stroustrup


Acties:
  • 0 Henk 'm!

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 00:05
Andre-85 schreef op dinsdag 16 februari 2010 @ 08:31:
[...]
Thanks, die had was ik nog niet tegen gekomen. Enig idee waar <rc> voor staat? <archiver> is wel duidelijk ;)
Resource Compiler zo te zien.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Acties:
  • 0 Henk 'm!

  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

Andre-85 schreef op maandag 15 februari 2010 @ 16:02:
Ik probeer Boost te cross compilen voor een ARM processor van Texas Instruments, vanuit een linux omgeving.
Als je het uiteindelijk aan de praat krijgt, gelieve dan de oplossing hier te posten.
Ik moet binnenkort (ook met MV4.0) voor zowel ppc_440 als arm_v5t_le boost hercompileren en zou liever niet dezelfde problemen moeten oplossen. Op dit moment gebruiken we boost 1.34.1 en daar hadden we die problemen denk ik nog niet mee.

offtopic:
Je gebruikt hopelijk niet de DM6467. Wat een ***** platform is dat :(

ASSUME makes an ASS out of U and ME


Acties:
  • 0 Henk 'm!

  • Andre-85
  • Registratie: April 2003
  • Niet online
H!GHGuY schreef op dinsdag 16 februari 2010 @ 12:31:
[...]


Als je het uiteindelijk aan de praat krijgt, gelieve dan de oplossing hier te posten.
Ik moet binnenkort (ook met MV4.0) voor zowel ppc_440 als arm_v5t_le boost hercompileren en zou liever niet dezelfde problemen moeten oplossen. Op dit moment gebruiken we boost 1.34.1 en daar hadden we die problemen denk ik nog niet mee.

offtopic:
Je gebruikt hopelijk niet de DM6467. Wat een ***** platform is dat :(
Wij komen van Boost 1.33.1. (idd oude meuk...) Dat was te cross compilen door gebruik te maken van de sGCC_ROOT_DIRECTORY, sGCC, sGXX, sRANLIB opties. Maar dit werkt helaas niet meer zo...
Ik weet niet of ik vandaag nog tijd heb om hier verder mee te gaan, maar mijn bevindingen zal ik sowieso posten.
offtopic:
Platform is DM6446

Lorem
Whenever we feel the need to comment something, we write a method instead. - Martin Fowler
People who think they know everything really annoy those of us who know we don't - Bjarne Stroustrup


Acties:
  • 0 Henk 'm!

  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

Heb je ook de ambitie om de regressie-testen van boost te draaien of laat je die voor wat het is?

ASSUME makes an ASS out of U and ME


  • Andre-85
  • Registratie: April 2003
  • Niet online
Ok, even een update. De link die EddoH gaf, zag er hoopvol uit. Helaas krijg ik dezelfde foutmelding. In de directory die ik als toolset-root opgeef een symbolic link van arm_v5t_le-ar naar ar maken helpt ook niet. Misschien dan toch gaan knoeien met PATH, of achteraf arm_v5t_le-ranlib over die archives laten lopen. :/ Het blijft allemaal geknoei....
H!GHGuY schreef op woensdag 17 februari 2010 @ 12:53:
Heb je ook de ambitie om de regressie-testen van boost te draaien of laat je die voor wat het is?
Regressie testen is een brug te ver. Het is hier nauwelijks geaccepteerd om Boost op een embedded platform te gebruiken...

Lorem
Whenever we feel the need to comment something, we write a method instead. - Martin Fowler
People who think they know everything really annoy those of us who know we don't - Bjarne Stroustrup


  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

Andre-85 schreef op donderdag 18 februari 2010 @ 08:40:
Regressie testen is een brug te ver. Het is hier nauwelijks geaccepteerd om Boost op een embedded platform te gebruiken...
Wij gebruiken ook slechts een subset van boost. Voorwaarde voor acceptatie is dat de regressietesten lukken en dat een comité der wijzen approval geeft voor de betreffende module.

BTW: ik kwam hierop:
http://beta.boost.org/boo...2/tasks/crosscompile.html

Is dit niet wat je zoekt?

ASSUME makes an ASS out of U and ME


Acties:
  • 0 Henk 'm!

  • Andre-85
  • Registratie: April 2003
  • Niet online
Dat doe ik al ;) De juiste compiler wordt al aangeroepen door bjam. Maar ik m'n archive wat eruit komt is niet goed... Ik heb het gevoel dat ik die toolset verder moet configureren, zoals die link van EddoH ook aan lijkt te geven.

Misschien dat ik m'n geluk nog even op StackOverflow moet proberen... En anders arm_v5t_le-ranlib zelf maar over die archives heen laten lopen, maar dat is eigenlijk gewoon om te huilen natuurlijk...

Lorem
Whenever we feel the need to comment something, we write a method instead. - Martin Fowler
People who think they know everything really annoy those of us who know we don't - Bjarne Stroustrup


Acties:
  • 0 Henk 'm!

  • EddoH
  • Registratie: Maart 2009
  • Niet online

EddoH

Backpfeifengesicht

Ik ken de build procedure van Boost niet, maar normaal gesproken kun je met environment variabelen de tools aangeven..
bv:
CC="arm-none-linux-gnueabi-gcc" AR="arm-none-linux-gnueabi-ar" RANLIB="arm-none-linux-gnueabi-ranlib" ./configure

nu gebruik jij zo te zien geen configure script maar bjam(geen ervaringen mee), maar deze zal to ook wel zoiets ondersteunen? wat zegt de bjam help?

Acties:
  • 0 Henk 'm!

  • Andre-85
  • Registratie: April 2003
  • Niet online
EddoH schreef op vrijdag 19 februari 2010 @ 09:37:
[...]
nu gebruik jij zo te zien geen configure script maar bjam(geen ervaringen mee), maar deze zal to ook wel zoiets ondersteunen? wat zegt de bjam help?
Dat is eigenlijk een beetje de kern van het probleem... De documentatie over het bouwen van Boost en specifiek cross compilen is nogal gebrekkig... Of ik kijk gewoon echt op de verkeerde plekken. :/

Lorem
Whenever we feel the need to comment something, we write a method instead. - Martin Fowler
People who think they know everything really annoy those of us who know we don't - Bjarne Stroustrup


  • Andre-85
  • Registratie: April 2003
  • Niet online
Ik heb mijn antwoord gevonden :) http://stackoverflow.com/...ith-cross-compiling-boost

Boost met CMake is echt ideaal voor cross compileren.

Iedereen bedankt voor de input.

Lorem
Whenever we feel the need to comment something, we write a method instead. - Martin Fowler
People who think they know everything really annoy those of us who know we don't - Bjarne Stroustrup

Pagina: 1