Updating the Toolchain - sysroot update or building from scratch
Thu May 18 01:10:00 GMT 2017
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?
More information about the crossgcc