Difference between revisions of "Precompiled C development environment, running on the LS"

From NAS-Central Buffalo - The Linkstation Wiki
Jump to: navigation, search
m
m (Background)
 
(29 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{Template:Articles}}
+
{{Template:Articles|Projects|OpenLink|LS1|LS2|HG|LSPro|Development}}
<center><font color=red>''Originally by frontalot from linkstationwiki.org''</font></center>
+
<small><font color=red>Originally by frontalot from linkstationwiki.org Edited by mindbender</font></small>
<br><br>
+
[[image:Software_development_process.jpg|400px|right]]
 +
=Background=
 +
The LinkStation lacks virtually all necessary development tools, such as binutils or gcc, making it quite difficult to natively compile programs. Are you struggling to build a C compiler without a C compiler? The development tools project aims to solve this problem by offering a complete package of precompiled development tools and related libraries. Although certain tools from this package may work on a stock LinkStation, the development tools are specifically designed to be used on LinkStations with '''[[OpenLink]]''' firmware. You may download the latest version from the [http://downloads.nas-central.org/ downloads area].
  
The LinkStation lacks virtually all necessary development tools, such as binutils or gcc, making it quite difficult to natively compile programs. Are you struggling to build a C compiler without a C compiler? The development tools project aims to solve this problem by offering a complete package of precompiled development tools and related libraries. Although certain tools from this package may work on a stock LinkStation, the development tools are specifically designed to be used on LinkStations with OpenLink firmware. You may download the latest version from the downloads area.
+
=Installation instructions=
 +
{{DevelopmentToolsInstallation}}
  
 +
=Roadmap=
 +
==ARM (LSPro)==
 +
===version 0.16-3===
 +
  --removed busybox due to error.
 +
===version 0.16-2===
 +
  --busybox and coreutils upgrade.
 +
===version 0.12===
 +
  --gcc-4.1.1
  
== ppc-tools-2.0 ==
+
==PowerPC (LS1+HG)==
 +
==== ppc-tools-2.1 ====
 +
 
 +
 
 +
    * Added simple installation script install.sh which just installs everything
 +
    * Moved old installation script install.sh to install_custom.sh
 +
    * Updated both scripts to create a symlink for /usr/bin/cc -> /usr/bin/gcc
 +
 
 +
 
 +
==== ppc-tools-2.0 ====
  
  
Line 28: Line 48:
 
     * Moved Perl packages to OpenLink  
 
     * Moved Perl packages to OpenLink  
  
=== ppc-tools-1.0 ===
+
 
 +
==== ppc-tools-1.0 ====
 +
 
  
 
     * autoconf 2.59a
 
     * autoconf 2.59a
Line 76: Line 98:
 
     * zlib1g-dev 1.2.2  
 
     * zlib1g-dev 1.2.2  
  
 +
==PowerPC (HG)==
 +
==== hg-tools-2.0 ====
 +
'''''README'''''
 +
SYNOPSIS:
 +
Three different sets of headers are provided: (1) stock, (2) stable, and (3) unstable.    See CHANGES for details.
 +
 +
INSTALLATION:
 +
Unpack the archive to your filesystem root [/]. The headers will install to  /usr/include.
 +
'''''CHANGES'''''
 +
updated kernel .config
 +
  * stock headers:
 +
  * binutils 2.11.2
 +
  * gcc 2.95.3
 +
  * glibc 2.2.3
 +
  * linux-2.4.20_hglan_htgl
 +
stable headers:
 +
  * binutils 2.15
 +
  * gcc 3.3.5
 +
  * glibc 2.3.2
 +
  * linux-2.4.20_hglan_htgl
 +
unstable headers:
 +
  * binutils 2.15
 +
  * gcc 3.4.4
 +
  * glibc 2.3.5
 +
  * linux-2.4.20_hglan_htgl
  
== mipsel-tools-2.0 ==
+
==== hg-tools-1.0 ====
 +
initial version
 +
  * gcc-3.3.5-glibc-2.3.2
 +
  * linux-2.4.20_hglan_htgl
 +
 
 +
==MIPSel==
 +
==== mipsel-tools-2.1 ====
 +
 
 +
 
 +
    * Added simple installation script install.sh which just installs everything
 +
    * Moved old installation script install.sh to install_custom.sh
 +
    * Updated both scripts to create a symlink for /usr/bin/cc -> /usr/bin/gcc
 +
 
 +
 
 +
==== mipsel-tools-2.0 ====
  
  
Line 100: Line 161:
  
  
=== mipsel-tools-1.0 ===
+
==== mipsel-tools-1.0 ====
 
+
 
+
 
     * autoconf 2.59a
 
     * autoconf 2.59a
 
     * automake 1.4-p6
 
     * automake 1.4-p6
Line 147: Line 206:
 
     * python 2.3.5
 
     * python 2.3.5
 
     * python-dev 2.3.5
 
     * python-dev 2.3.5
     * zlib1g-dev 1.2.2  
+
     * zlib1g-dev 1.2.2
 
+
 
+
== hg-tools ==
+
 
+
 
+
'''* Please use the latest ppc-tools package but replace the included kernel headers with the HG LinkStation kernel headers (linux-kernel-headers-2.4.20_dev).'''
+
 
+
 
+
[[category:Projects]]
+
[[category:LS1]]
+
[[category:LS2]]
+
[[category:HG]]
+
  
[[Category:Development]]
+
.

Latest revision as of 09:37, 12 November 2007

Originally by frontalot from linkstationwiki.org Edited by mindbender

Software development process.jpg

Contents

Background

The LinkStation lacks virtually all necessary development tools, such as binutils or gcc, making it quite difficult to natively compile programs. Are you struggling to build a C compiler without a C compiler? The development tools project aims to solve this problem by offering a complete package of precompiled development tools and related libraries. Although certain tools from this package may work on a stock LinkStation, the development tools are specifically designed to be used on LinkStations with OpenLink firmware. You may download the latest version from the downloads area.

Installation instructions

Check which Linkstation model you have. Currently there are 3 different architectures ARM (LSPro), PowerPC (LS1, HG, HS, Terastation, Terastation Pro) and MIPSel (LS2).

These should install all the development tools without asking, you will now have a working toolchain on your box!

ARM (LSPROv1, LSPROv2, LSLIVEv1, LSLIVEv2, TSPRO2, TSLIVE)

Kurobrick.png
WARNING!

There is a possibility that you could brick your NAS with these instructions. Please make sure that you read the entire page carefully. Not for regular users, developers and experienced users only. You may brick your box!!!


Nuvola apps important.png 
WARNING!

This version is an alpha version and thus may have many bugs. For those who want to test this package, please untar to root and test the binaries. Also, please list, and possibly update the package with any missing binaries.


arm-tools-0_16-8.tgz

 mkdir tmp
 cd tmp
 wget http://downloads.nas-central.org/LSPro_ARM9/DevelopmentTools/NativeToolchains/arm-tools-0_16-8.tgz
 tar -C / -xzvf arm-tools-0_16-8.tgz


The tools awk and sed included by the LSPROv2 are "busyboxed" versions with minimal functionality. This will break some source builds, f.ex. the latest Apache2 (httpd-2.2.9), causing much annoyance.

To fix this one can install sed: http://directory.fsf.org/project/sed.

 mkdir /mnt/disk1/tmp
 cd /mnt/disk1/tmp  
 wget http://ftp.gnu.org/pub/gnu/sed/sed-4.1.5.tar.gz
 tar -zxvf sed-4.1.5.tar.gz
 cd sed-4.1.5
 ./configure
 make
 su root 
 password:<root's password>
 mv /bin/sed /bin/sed.bak
 make install
 ln -s /usr/local/bin/sed /bin/sed
 exit

(The symlink is probably not necessary because /usr/local/bin is on the path but it is better to be sure). Be aware that building 'sed' requires a working 'sed' so we leave the original version until we have the upgrade ready.

Once that is out of the way we can continue with 'awk', or rather 'gawk', the GNU version of awk: http://directory.fsf.org/project/gawk

Again this is a straight-forward build:

 mkdir /mnt/disk1/tmp
 cd /mnt/disk1/tmp  
 wget http://ftp.gnu.org/gnu/gawk/gawk-3.1.5.tar.gz
 tar -zxvf gawk-3.1.5.tar.gz
 ./configure
 make
 su root
 password:<root's password>
 mv /usr/bin/awk /usr/bin/awk.bak
 make install
 ln -s /usr/local/bin/awk /usr/bin/awk
 exit

Now the system should be able to build 'autoconf'-based source trees reliably.

PowerPC (LS1)

ppc-tools-2_1.tgz

 mkdir tmp
 cd tmp
 wget http://downloads.nas-central.org/ALL_PPC/ppc-tools-2_1.tgz 
 mkdir devtools
 cd devtools
 tar -xzvf ../ppc-tools-2_1.tgz
 ./install.sh

PowerPC (HG)

ppc-tools-2_1.tgz

Please use the latest ppc-tools package but replace the included kernel headers with the HG LinkStation kernel headers ! Do not delete the kernel-headers from the package before execute the install script, also if there are not needed anymore, because e.g. the kernel 2.6.x is running. In the kernel-headers 2.4.x are also the gcc and g++ header included and must be installed.

kernel-headers-2.4.20_hglan_htgl-2.0.tar.bz2

 mkdir tmp
 cd tmp
 wget http://downloads.nas-central.org/ALL_PPC/ppc-tools-2_1.tgz 
 mkdir devtools
 cd devtools
 tar -xzvf ../ppc-tools-2_1.tgz
 ./install.sh
 wget http://downloads.nas-central.org/LSHG_PPC/Kernel/Headers/kernel-headers-2.4.20_hglan_htgl-2.0.tgz
 tar -C / -xvzf kernel-headers-2.4.20_hglan_htgl-2.0.tgz

PowerPC (TS , TSHS)

Installation like LS1, you only need to install different kernel-headers.

PowerPC (TSPRO1)

Installation like LS1, you only need to install different kernel-headers.

MIPSel (LS2)

mipsel-tools-2_1.tgz

 mkdir tmp
 cd tmp
 wget http://downloads.nas-central.org/LS2_MIPSel/DevelopmentTools/NativeToolchains/mipsel-tools-2_1.tgz
 mkdir devtools
 cd devtools
 tar -xzvf ../mipsel-tools-2_1.tgz
 ./install.sh

Roadmap

ARM (LSPro)

version 0.16-3

  --removed busybox due to error.

version 0.16-2

  --busybox and coreutils upgrade. 

version 0.12

  --gcc-4.1.1

PowerPC (LS1+HG)

ppc-tools-2.1

   * Added simple installation script install.sh which just installs everything
   * Moved old installation script install.sh to install_custom.sh
   * Updated both scripts to create a symlink for /usr/bin/cc -> /usr/bin/gcc


ppc-tools-2.0

   * Updated installation script (no longer needs to be unpacked to filesystem root)
   * Updated installation instructions
   * Added libncursesw-dev 5.4
   * Added additional locales 2.3.5
   * Upgraded to cpp 3.3.5
   * Upgraded to g++ 3.3.5
   * Upgraded to gcc 3.3.5
   * Upgraded to glibc-dev 2.3.5
   * Upgraded to libstdc+±dev 3.3.5
   * Upgraded to official Linux kernel headers
   * Moved libdb 4.2.52 to OpenLink
   * Moved libgcc1 3.4.3 to OpenLink
   * Moved libgdbm 1.8.3 to OpenLink
   * Moved libncurses 5.4 to OpenLink
   * Moved libpopt 1.7 to OpenLink
   * Moved libreadline 4.3 to OpenLink
   * Moved libssl 0.9.7e to OpenLink
   * Moved Perl packages to OpenLink 


ppc-tools-1.0

   * autoconf 2.59a
   * automake 1.4-p6
   * autotools-dev 20050422.1
   * binutils 2.15
   * binutils-dev 2.15
   * bison 1.875d
   * byacc 1.9.1
   * cpp 2.95.4
   * diff 2.8.1
   * file 4.12
   * flex 2.5.31
   * g++ 2.95.4
   * gcc 2.95.4
   * libc6-dev 2.3.2.ds1
   * libdb 4.2.52
   * libdb-dev 4.2.52
   * libgcc1 3.4.3
   * libgdbm-dev 1.8.3
   * libgdbm3 1.8.3
   * libltdl3 1.5.6
   * libltdl3-dev 1.5.6
   * libmagic-dev 4.12
   * libmagic1 4.12
   * libncurses 5.4
   * libncurses-dev 5.4
   * libpopt-dev 1.7
   * libpopt0 1.7
   * libreadline 4.3
   * libreadline-dev 4.3
   * libssl-dev 0.9.7e
   * libssl 0.9.7e
   * libstdc++2.10-dev 2.95.4
   * libstdc++2.10-glibc2.2 2.95.4
   * libtool 1.5.6
   * linux-kernel-headers 2.5.999-test7-bk
   * m4 1.4.2
   * make 3.80
   * openssl 0.9.7e
   * perl 5.8.4
   * perl-base 5.8.4
   * perl-modules 5.8.4
   * pkg-config 0.17.2
   * python 2.3.5
   * python-dev 2.3.5
   * zlib1g-dev 1.2.2 

PowerPC (HG)

hg-tools-2.0

README

SYNOPSIS:
Three different sets of headers are provided: (1) stock, (2) stable, and (3) unstable.    See CHANGES for details.

INSTALLATION:
Unpack the archive to your filesystem root [/]. The headers will install to  /usr/include.

CHANGES

updated kernel .config
 * stock headers:
 * binutils 2.11.2
 * gcc 2.95.3
 * glibc 2.2.3
 * linux-2.4.20_hglan_htgl
stable headers:
 * binutils 2.15
 * gcc 3.3.5
 * glibc 2.3.2
 * linux-2.4.20_hglan_htgl
unstable headers:
 * binutils 2.15
 * gcc 3.4.4
 * glibc 2.3.5
 * linux-2.4.20_hglan_htgl

hg-tools-1.0

initial version
 * gcc-3.3.5-glibc-2.3.2
 * linux-2.4.20_hglan_htgl

MIPSel

mipsel-tools-2.1

   * Added simple installation script install.sh which just installs everything
   * Moved old installation script install.sh to install_custom.sh
   * Updated both scripts to create a symlink for /usr/bin/cc -> /usr/bin/gcc


mipsel-tools-2.0

   * Updated installation script (no longer needs to be unpacked to filesystem root)
   * Updated installation instructions
   * Added libncursesw-dev 5.4
   * Added additional locales 2.3.5
   * Upgraded to cpp 3.3.5
   * Upgraded to g++ 3.3.5
   * Upgraded to gcc 3.3.5
   * Upgraded to glibc-dev 2.3.5
   * Upgraded to libstdc+±dev 3.3.5
   * Upgraded to official Linux kernel headers
   * Moved libdb 4.2.52 to OpenLink
   * Moved libgcc1 3.4.3 to OpenLink
   * Moved libgdbm 1.8.3 to OpenLink
   * Moved libncurses 5.4 to OpenLink
   * Moved libpopt 1.7 to OpenLink
   * Moved libreadline 4.3 to OpenLink
   * Moved libssl 0.9.7e to OpenLink
   * Moved Perl packages to OpenLink 


mipsel-tools-1.0

   * autoconf 2.59a
   * automake 1.4-p6
   * autotools-dev 20050422.1
   * binutils 2.15
   * binutils-dev 2.15
   * bison 1.875d
   * byacc 1.9.1
   * cpp 2.95.4
   * diff 2.8.1
   * file 4.12
   * flex 2.5.31
   * g++ 2.95.4
   * gcc 2.95.4
   * libc6-dev 2.3.2.ds1
   * libdb 4.2.52
   * libdb-dev 4.2.52
   * libgcc1 3.4.3
   * libgdbm-dev 1.8.3
   * libgdbm3 1.8.3
   * libltdl3 1.5.6
   * libltdl3-dev 1.5.6
   * libmagic-dev 4.12
   * libmagic1 4.12
   * libncurses 5.4
   * libncurses-dev 5.4
   * libpopt-dev 1.7
   * libpopt0 1.7
   * libreadline 4.3
   * libreadline-dev 4.3
   * libssl-dev 0.9.7e
   * libssl 0.9.7e
   * libstdc++2.10-dev 2.95.4
   * libstdc++2.10-glibc2.2 2.95.4
   * libtool 1.5.6
   * linux-kernel-headers 2.5.999-test7-bk
   * m4 1.4.2
   * make 3.80
   * openssl 0.9.7e
   * perl 5.8.4
   * perl-base 5.8.4
   * perl-modules 5.8.4
   * pkg-config 0.17.2
   * python 2.3.5
   * python-dev 2.3.5
   * zlib1g-dev 1.2.2

.