Coder Social home page Coder Social logo

ninoh-fox / toolchain Goto Github PK

View Code? Open in Web Editor NEW
34.0 4.0 13.0 398.87 MB

toolchain for RG350 and PG2 rogue cfw

License: GNU General Public License v2.0

Makefile 49.08% Arc 0.01% Shell 26.00% Batchfile 0.01% Python 9.84% M4 1.79% C 10.25% Roff 0.01% C++ 1.37% Perl 1.01% Lex 0.17% Yacc 0.40% CMake 0.07%

toolchain's Introduction

======================================================
============= RG350 BUILD INSTRUCTIONS ===============
======================================================

### Pre-Build Steps ###

$ sudo apt-get update
$ sudo apt-get install bison flex gettext texinfo wget cpio python unzip mercurial subversion libncurses5-dev libc6-dev-i386 bzr libssl-dev g++-multilib rsync java-wrappers mtools default-jdk ecj
## you need a javac compiler, (i.e. sudo apt-get install gcj-4.9-jdk)

Make the folder /opt and download http://www.gcw-zero.com/files/opendingux-gcw0-toolchain.2014-08-20.tar.bz2
how superuser move the bz2 file in /opt folder and type

/opt$ sudo tar jxvf ./opendingux-gcw0-toolchain.2014-08-20.tar.bz2
/opt$ sudo rm -rf ./opendingux-gcw0-toolchain.2014-08-20.tar.bz2

the next step is add the GCW0 Path in .bashrc file in your home folder, type this in the last line in the file:

export PATH="/opt/gcw0-toolchain/usr/bin:${PATH}:/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/bin"

### Build Steps ###

## Enter the directory where you want to clone the git repo
$ git clone https://github.com/Ninoh-FOX/toolchain.git
$ cd toolchain
$ make rg350_defconfig
$ make

======================================================


To build and use the buildroot stuff, do the following:

1) run 'make menuconfig'
2) select the packages you wish to compile
3) run 'make'
4) wait while it compiles
5) Use your shiny new root filesystem. Depending on which sort of
    root filesystem you selected, you may want to loop mount it,
    chroot into it, nfs mount it on your target device, burn it
    to flash, or whatever is appropriate for your target system.

You do not need to be root to build or run buildroot.  Have fun!

Offline build:
==============

In order to do an offline-build (not connected to the net), fetch all
selected source by issuing a
$ make source

before you disconnect.
If your build-host is never connected, then you have to copy buildroot
and your toplevel .config to a machine that has an internet-connection
and issue "make source" there, then copy the content of your dl/ dir to
the build-host.

Building out-of-tree:
=====================

Buildroot supports building out of tree with a syntax similar
to the Linux kernel. To use it, add O=<directory> to the
make command line, E.G.:

$ make O=/tmp/build

And all the output files (including .config) will be located under /tmp/build.

More finegrained configuration:
===============================

You can specify a config-file for uClibc:
$ make UCLIBC_CONFIG_FILE=/my/uClibc.config

And you can specify a config-file for busybox:
$ make BUSYBOX_CONFIG_FILE=/my/busybox.config

To use a non-standard host-compiler (if you do not have 'gcc'),
make sure that the compiler is in your PATH and that the library paths are
setup properly, if your compiler is built dynamically:
$ make HOSTCC=gcc-4.3.orig HOSTCXX=gcc-4.3-mine

Depending on your configuration, there are some targets you can use to
use menuconfig of certain packages. This includes:
$ make HOSTCC=gcc-4.3 linux-menuconfig
$ make HOSTCC=gcc-4.3 uclibc-menuconfig
$ make HOSTCC=gcc-4.3 busybox-menuconfig

Please feed suggestions, bug reports, insults, and bribes back to the
buildroot mailing list: [email protected]

toolchain's People

Contributors

ninoh-fox avatar rafavico avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

toolchain's Issues

/opt/gcw0-toolchain/usr/bin/automake is written for old Perl

As I'm trying to automake from Fuse emulator's Makefile.am I'm getting

$ automake --add-missing --copy --force-missing

Unescaped left brace in regex is illegal here in regex; marked by <-- HERE in m/${ <-- HERE ([^ \t=:+{}]+)}/ at /opt/gcw0-toolchain/usr/bin/automake line 3930.

The fix (backslashing brackets):
3930
#$text =~ s/\${([^ \t=:+{}]+)}/substitute_ac_subst_variables_worker ($1)/ge;
$text =~ s/\$\{([^ \t=:+{}]+)\}/substitute_ac_subst_variables_worker ($1)/ge;

It seems to be related to Perl version. I'm using:
This is perl 5, version 26, subversion 1 (v5.26.1) built for x86_64-linux-gnu-thread-multi

Make giving some problems

Hi @Ninoh-FOX ,

When running make, after around 1 hour I'm getting the following problem and I'm not sure what's going on.

Applying strace-02-fix-ptrace_peeksiginfo_args.patch using patch: patching file configure.ac Hunk #1 FAILED at 257. 1 out of 1 hunk FAILED -- saving rejects to file configure.ac.rej patching file process.c Hunk #1 FAILED at 63. 1 out of 1 hunk FAILED -- saving rejects to file process.c.rej patching file signal.c Hunk #1 FAILED at 51. 1 out of 1 hunk FAILED -- saving rejects to file signal.c.rej patching file syscall.c Hunk #1 FAILED at 48. 1 out of 1 hunk FAILED -- saving rejects to file syscall.c.rej patching file util.c Hunk #1 FAILED at 55. 1 out of 1 hunk FAILED -- saving rejects to file util.c.rej Patch failed! Please fix strace-02-fix-ptrace_peeksiginfo_args.patch! package/pkg-generic.mk:146: recipe for target '/toolchain/output/build/strace-5.4/.stamp_patched' failed make: *** [/toolchain/output/build/strace-5.4/.stamp_patched] Error 1

Thanks for your great contribution!

CMake cannot find SDL2

CMake in /opt/gcw0-toolchain/usr/bin/cmake uses /opt/gcw0-toolchain/usr/share/cmake-3.1/Modules/
There is FindSDL.cmake and other FindSDL_* but no FindSDL2. Developers add custom FindSDL_ to their source code. Eg. here:
https://github.com/brendan-w/collector/tree/master/cmake
But even the existing FindSDL.cmake cannot find SDL in
/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib
Why? Can it use a relative path? I'm not sure yet.

To fix this in my case, FIND_LIBRARY needs to be updated. Eg.

FIND_LIBRARY(SDL2_LIBRARY_TEMP
NAMES SDL2
HINTS
$ENV{SDL2DIR}
PATH_SUFFIXES lib64 lib
PATHS
/sw
/opt/local
/opt/csw
/opt
/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib
)

There is a way to use $ENV{SDL2DIR} but I still need to learn how.

Cyclic reboot (transferred from https://github.com/Ninoh-FOX/RG280V_ROGUE/issues/3)

Hi! I've managed to build the sd_image from your repo and flashed it into my RG280V SD-card.

The console starts to boot, shows the graphical logo, reports that it is creating a swap (but I don't see any progress bar change there), shows that it "wipes the old config" and reboots. Then the same repeats over and over.

How to debug this? What could be the problem?

I was building in Ubuntu 18.04, had to make some small patches in the build scripts, but I haven't changed any C/C++ code and haven't changed anything major.

ld: cannot find -lresolv

With the latest toolchain dated Sep 8, 2021 I'm getting:

/opt/gcw0-toolchain/usr/lib/gcc/mipsel-gcw0-linux-uclibc/4.9.1/../../../../mipsel-gcw0-linux-uclibc/bin/ld: cannot find -lresolv

libpng 14 is used by default instead of 16

Maybe not an issue but still worth looking at.

The latest toolchain has both libpng14 and libpng16. During compilation/linking version 14 is used by default instead of 16.
I guess it's because 14 comes before 16 alphabetically.

My Go build now looks like this:

CC='/opt/gcw0-toolchain/usr/bin/mipsel-gcw0-linux-uclibc-gcc' \
 CGO_CFLAGS='-I/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/include
  -I/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/include/libpng16
  -D_REENTRANT' \
 CGO_ENABLED=1 \
 CGO_LDFLAGS='-L/opt/gcw0-toolchain/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib -lSDL2 -lpng16' \
 GOARCH=mipsle \
 GOMIPS=softfloat \
 GOOS=linux \
 PKG_CONFIG='/opt/gcw0-toolchain/usr/bin/pkg-config' \
 go build -o ${TMP_FOLDER}/${TARGET} ${SOURCE}

See how I'm specifying libpng16 because otherwise 14 is used. SDL2 uses 16 I guess.

Builroot version broken

This version of buildroot has some broken links, as #3 mentioned, also I found htop to be broken. Updating to the latest buildroot should fix this

Missing libfl.so.2 while building ScummVM

I'm trying to build OPK for the latest ScummVM. I have downloaded the latest Debian toolchain from the releases page, extracted it into /opt/gcw0-toolchain, and executed bash backends/platform/dingux/build.gcw0.sh from ScummVM root directory. It builds for a while, until it tries to link:

    C++      engines/xeen/xsurface.o
    AR       engines/libengines.a
mipsel-linux-ar: error while loading shared libraries: libfl.so.2: cannot open shared object file: No such file or directory

libfl.so.2 is shared library provided by flex. Toolchain contains flex, could it be shipped with this shared library as well?

`make` broken

During make the access on https://bitbucket.org/bartbes/love-experiments fails as this repository no longer exists (Mercurial support has been removed from Bitbucket).

>>> love2d aeefcc6 Downloading
http authorization required for https://bitbucket.org/bartbes/love-experiments
realm: Bitbucket.org HTTP
user: 
password: 
http authorization required for https://bitbucket.org/bartbes/love-experiments
realm: Bitbucket.org HTTP
user: interrupted!
--2020-08-19 16:38:16--  http://sources.buildroot.net/love2d-aeefcc6.tar.gz
Resolving sources.buildroot.net (sources.buildroot.net)... 104.26.1.37, 172.67.72.56, 104.26.0.37, ...
Connecting to sources.buildroot.net (sources.buildroot.net)|104.26.1.37|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2020-08-19 16:38:16 ERROR 404: Not Found.

package/pkg-generic.mk:73: recipe for target 'toolchain/output/build/love2d-6257287/.stamp_downloaded' failed
make: *** [toolchain/output/build/love2d-6257287/.stamp_downloaded] Error 1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.