Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
howtos:pic32mx_tools_on_solaris [2023/02/20 09:33]
admin [Deploy PIC32MX gcc toolchain on Solaris]
howtos:pic32mx_tools_on_solaris [2023/11/29 17:44] (current)
admin [Stage 3 - deploy gcc and g++ with newlib suport]
Line 1: Line 1:
 ====== Deploy PIC32MX gcc toolchain on Solaris ====== ====== Deploy PIC32MX gcc toolchain on Solaris ======
-The toolchain no longer works on s11u4sru37 due to missing /​usr/​lib/​libmpc.so.2 and /​usr/​lib/​libmpfr.so.1 libraries - /​opt/​mipsel/​libexec/​gcc/​mipsel/​4.5.2/​cc1 depends on them. +  * The toolchain **binutils-2.36**,​ **gcc-10.3.0**,​ **newlib-1.4** no longer works after upgrade from **SRU62** to **SRU63**, since **libisl** was upgraded from version **15** to version **23**. Re-compilation with libisl 23 fixed the problem. 
-Reason being the libraries were upgraded to /​usr/​lib/​limpc.so.3 and /​usr/​lib/​libmpfr.so.4 respectively.+  * The toolchain no longer works on s11u4sru37 due to missing /​usr/​lib/​libmpc.so.2 and /​usr/​lib/​libmpfr.so.1 libraries - /​opt/​mipsel/​libexec/​gcc/​mipsel/​4.5.2/​cc1 depends on them. Reason being the libraries were upgraded to /​usr/​lib/​limpc.so.3 and /​usr/​lib/​libmpfr.so.4 respectively.
 To workaround the issue, missing libraries were copied from s11u4sru30 where both old as well as new versions of those libraries are available. To workaround the issue, missing libraries were copied from s11u4sru30 where both old as well as new versions of those libraries are available.
-Also, new tool chain has been built based on binutils 2.37, gcc 9.4.0, newlib 4.1.0 and binutils 2.36, gcc 10.3.0, newlib 4.1.0.+Also, new tool chain has been built based on binutils 2.36, gcc 10.3.0, newlib 4.1.0.
 ===== binutils 2.36 ===== ===== binutils 2.36 =====
   * start building new one   * start building new one
 <​code>​ <​code>​
 $ export PATH=/​usr/​gnu/​bin:​$PATH $ export PATH=/​usr/​gnu/​bin:​$PATH
-$ mkdir ~/​projects/​gcc-mips/​ +$ mkdir ~/​projects/​gcc-mips-10.3.0
-$ cd ~/​projects/​gcc-mips/​+$ cd ~/​projects/​gcc-mips-10.3.0/
 $ wget http://​ftp.gnu.org/​gnu/​binutils/​binutils-2.36.tar.gz -O /​tmp/​binutils-2.36.tar.gz $ wget http://​ftp.gnu.org/​gnu/​binutils/​binutils-2.36.tar.gz -O /​tmp/​binutils-2.36.tar.gz
 $ tar xvpf /​tmp/​binutils-2.36.tar.gz $ tar xvpf /​tmp/​binutils-2.36.tar.gz
Line 59: Line 59:
 <​code>​ <​code>​
 $ cd build-gcc-el-10.3.0 $ cd build-gcc-el-10.3.0
-$ ../​gcc-10.3.0/​configure --target=mipsel --prefix=/​opt/​mipsel --without-headers --with-gnu-as --with-gnu-ld --with-newlib --enable-languages=c --with-local-prefix=/​opt/​mipsel --with-native-system-header-dir=/​opt/​mipsel/​include/​ --disable-nls --disable-shared ​ --enable-multilib --disable-decimal-float -disable-threads --disable-libmudflap --disable-libssp --disable-libgomp --disable-libquadmath+$ ../​gcc-10.3.0/​configure --target=mipsel --prefix=/​opt/​mipsel-10.3.0 ​--without-headers --with-gnu-as --with-gnu-ld --with-newlib --enable-languages=c --with-local-prefix=/​opt/​mipsel --with-native-system-header-dir=/​opt/​mipsel/​include/​ --disable-nls --disable-shared ​ --enable-multilib --disable-decimal-float -disable-threads --disable-libmudflap --disable-libssp --disable-libgomp --disable-libquadmath
 $ make $ make
 $ sudo make install $ sudo make install
Line 65: Line 65:
   * **--enable-multilib** - builds several variants of libraries (big-endian,​ little-endian hard-float and soft-float). Default is little-endian hard-float.   * **--enable-multilib** - builds several variants of libraries (big-endian,​ little-endian hard-float and soft-float). Default is little-endian hard-float.
 <​code>​ <​code>​
-$ /​opt/​mipsel/​bin/​mipsel-gcc -print-multi-lib+$ /opt/mipsel-10.3.0/​bin/​mipsel-gcc -print-multi-lib
 .; .;
 soft-float;​@msoft-float soft-float;​@msoft-float
Line 75: Line 75:
   * newlib requires mips-cc   * newlib requires mips-cc
 <​code>​ <​code>​
-# cd /​opt/​mipsel/​bin+# cd /opt/mipsel-10.3.0/bin
 # ln -s mipsel-gcc mipsel-cc # ln -s mipsel-gcc mipsel-cc
 </​code>​ </​code>​
   * build and install   * build and install
-<​code>​$ export PATH=/​opt/​mipsel/​bin:​$PATH +<​code>​$ export PATH=/​opt/​mipsel-10.3.0/​bin:​$PATH 
-$ cd ~/​projects/​gcc-mips/​build-newlib-el-4.1.0 +$ cd ~/​projects/​gcc-mips-10.3.0/​build-newlib-el-4.1.0 
-$ ../​newlib-4.1.0/​configure --target=mipsel --prefix=/​opt/​mipsel+$ ../​newlib-4.1.0/​configure --target=mipsel --prefix=/​opt/​mipsel-10.3.0
 $ make ; echo $? $ make ; echo $?
 ... ...
Line 179: Line 179:
 ===== Stage 3 - deploy gcc and g++ with newlib suport ===== ===== Stage 3 - deploy gcc and g++ with newlib suport =====
 <​code>​ <​code>​
-$ cd ~/​projects/​gcc-mips/​build-gcc-el-10.3.0 +$ cd ~/​projects/​gcc-mips-10.3.0/​build-gcc-el-10.3.0 
-$ ../​gcc-10.3.0/​configure --target=mipsel --prefix=/​opt/​mipsel --with-gnu-as --with-gnu-ld --with-newlib --enable-languages=c,​c++ --with-local-prefix=/​opt/​mipsel --with-native-system-header-dir=/​opt/​mipsel/​include --disable-nls --disable-shared ​ --enable-multilib --disable-decimal-float -disable-threads --disable-libmudflap --disable-libssp --disable-libgomp --disable-libquadmath+$ ../​gcc-10.3.0/​configure --target=mipsel --prefix=/​opt/​mipsel-10.3.0 ​--with-gnu-as --with-gnu-ld --with-newlib --enable-languages=c,​c++ --with-local-prefix=/​opt/​mipsel --with-native-system-header-dir=/​opt/​mipsel/​include --disable-nls --disable-shared ​ --enable-multilib --disable-decimal-float -disable-threads --disable-libmudflap --disable-libssp --disable-libgomp --disable-libquadmath
 $ make -j 10 ; echo $? $ make -j 10 ; echo $?
 $ sudo make install $ sudo make install
howtos/pic32mx_tools_on_solaris.1676882033.txt.gz · Last modified: 2023/02/20 09:33 by admin
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0