Updating the Toolchain - sysroot update or building from scratch

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
Report Content as Inappropriate

Updating the Toolchain - sysroot update or building from scratch

I had earlier built a cross compiler environment for an ARM based
system using Crosstool-ng 1.13.2). This toolchain presently is
configured with an earlier version of libc, libc2-11-1 and gcc-4-4-6..

I now wish to update the libc package in the Toolchain keeping the
same compiler version at gcc-4-4-6. Two approaches come to my mind,
the simpler one

#1: Replace libc and the related libraries with the desired libc
version in the sysroot directory. Also replace corresponding libc
package header files at sysroot

Result:  I updated the sysroot with the libraries and headers and
recompiled my applications against this toolchain. I deployed libc2-19
related libraries and the recompiled applications on the Filesystem.
With some basic testing so far, things look good.

The other approach is to build a fresh toolchain using a later version
of Crosstool-ng and configuring for the desired version of libc, gcc

#2: Use crosstool-ng 1-20 with a later version of libc (libc2-19) and
gcc at 4-4-6.
I tried this approach but ran into a lot of issues. After a lot of
debugging and adjusting the companion libraries, I still faced issues
in the last stage related to libc.

Will approach #1 where we simply overwrite the libc (and other
libraries like libpthread, libm, librt etc .. ) and the corresponding
header files at the sysroot be a correct/valid way?