Code Monkey home page Code Monkey logo

tomatoware's Introduction

tomatoware

Tomatoware is a development environment for MIPSEL, ARM, and ARM64/Aarch64 routers. It can be used to natively compile user space applications for these devices.

Downloads for the project available at:

https://github.com/lancethepants/tomatoware/releases

Nigtly builds also found at:

http://lancethepants.com/files

Compiling

Tomatoware can be compiled with different root prefixes. This allows it to co-exist with entware(-ng)/optware(-ng), which reside in /opt. The official project prefix is /mmc.

Edit config.mk to set the desired architecture and prefix and run make.

Debian 10 is used to build this project. An included Dockerfile can be used to create a working enviornment. Otherwise the following packages should be sufficient.

apt-get install autoconf-archive automake bc bison build-essential cpio curl docbook-xsl flex gawk gettext git libcurl4-openssl-dev libexpat1-dev libffi-dev libglib2.0-dev libncurses5-dev libtool libxml2-dev locales pkg-config po4a python-dev rsync sudo swig texinfo unzip vim wget xsltproc

tomatoware's People

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  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  avatar  avatar  avatar

Watchers

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

tomatoware's Issues

git-2.1.2 fails to build

Getting the following error when building the new git version in a VirtualBox VM:

  CC builtin/get-tar-commit-id.o
builtin/get-tar-commit-id.c: In function 'cmd_get_tar_commit_id':
builtin/get-tar-commit-id.c:30:12: error: dereferencing pointer to incomplete type
make[1]: *** [builtin/get-tar-commit-id.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory `/home/ben/projects/tomatoware/src/git/git-2.1.2'
make: *** [tomatoware] Error 2

I deleted src/git/.extracted and src/git/git-2.1.1 before running make.

Static compiler compile diffutils-3.3 errors

./configure --prefix=/mmc/diff --enable-static

ERRO:

dcigettext.c:(.text+0x7e4): undefined reference to `libiconv'
dcigettext.c:(.text+0x9d4): undefined reference to `libiconv_open'
dcigettext.c:(.text+0xb0c): undefined reference to `libiconv_open'
/mmc/lib/gcc/arm-buildroot-linux-uclibcgnueabi/5.2.0/../../../libintl.a(relocatable.o): In function `libintl_set_relocation_prefix':
relocatable.c:(.text+0x44): undefined reference to `libiconv_set_relocation_prefix'
collect2: error: ld returned 1 exit status
Makefile:1222: recipe for target 'cmp' failed
make[2]: *** [cmp] Error 1

Compile reason:
I would like to statically compiled diffutils-3.3 so I can quickly mounted to the platform above the other , and tomatoware is built dynamically compiled libraries must rely on to run tomatoware

Compiling with tomatoware on RPi, "undefined reference to `__fputc_unlocked'"

I'm running tomatoware on a Raspberry Pi, to compile a static version of cryptsetup. When building libgcrypt, it appears that it's not correctly linking the C runtime library. Just want to be sure it's not a problem with uClibc. I'm using a modified version of your cryptsetup.sh build script. It encountered this linker error in the libgcrypt build step. The other packages compiled fine. What's different about libgcrypt?

libtool: link: gcc -g -O2 -fvisibility=hidden -Wall -o dumpsexp dumpsexp-dumpsexp.o
libtool: link: ranlib .libs/libgcrypt.a
libtool: link: rm -fr .libs/libgcrypt.lax
libtool: link: ( cd ".libs" && rm -f "libgcrypt.la" && ln -s "../libgcrypt.la" "libgcrypt.la" )
/bin/bash ../libtool  --tag=CC   --mode=link gcc -I/mmc/include -g -O2 -fvisibility=hidden -Wall   -o mpicalc mpicalc-mpicalc.o libgcrypt.la -L/mmc/lib -lgpg-error
libtool: link: gcc -DSTANDALONE -g -O2 -fvisibility=hidden -Wall -o hmac256 hmac256-hmac256.o
libtool: link: gcc -I/mmc/include -g -O2 -fvisibility=hidden -Wall -o mpicalc mpicalc-mpicalc.o  ./.libs/libgcrypt.a -L/mmc/lib /mmc/lib/libgpg-error.a
mpicalc-mpicalc.o: In function `my_getc':
/mmc/src/cryptsetup/gcrypt/libgcrypt-1.6.6/src/mpicalc.c:282: undefined reference to `__fgetc_unlocked'
mpicalc-mpicalc.o: In function `main':
/mmc/src/cryptsetup/gcrypt/libgcrypt-1.6.6/src/mpicalc.c:553: undefined reference to `__fputc_unlocked'
/mmc/src/cryptsetup/gcrypt/libgcrypt-1.6.6/src/mpicalc.c:545: undefined reference to `__fputc_unlocked'
/mmc/src/cryptsetup/gcrypt/libgcrypt-1.6.6/src/mpicalc.c:407: undefined reference to `__stdout'
collect2: error: ld returned 1 exit status
Makefile:717: recipe for target 'mpicalc' failed
make[2]: *** [mpicalc] Error 1
make[2]: Leaving directory '/home/pi/tomatoware/src/cryptsetup/gcrypt/libgcrypt-1.6.6/src'
Makefile:477: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/pi/tomatoware/src/cryptsetup/gcrypt/libgcrypt-1.6.6'
Makefile:408: recipe for target 'all' failed
make: *** [all] Error 2

To see what's going on, you could try running my build script, that I have forked from your repo:
https://github.com/blackfuel/cryptsetup-arm-static/blob/master/cryptsetup.sh

Thank you.

Path on the specified dynamic library

A plug-in library path specified dynamic compilation is my "/ mmc / lib", but I want it to path "/ opt / lib", so how should I operate in translation?

        libcrypto.so.1.0.0 => /mmc/lib/libcrypto.so.1.0.0 (0x2aac2000)
        libm.so.1 => /mmc/lib/libm.so.1 (0x2ac8b000)
        libz.so.1 => /mmc/lib/libz.so.1 (0x2acb5000)
        libdl.so.1 => /mmc/lib/libdl.so.1 (0x2acda000)
        libpthread.so.1 => /mmc/lib/libpthread.so.1 (0x2acee000)
        libc.so.1 => /mmc/lib/libc.so.1 (0x2ad16000)
        ld-uClibc.so.1 => /mmc/lib/ld-uClibc.so.1 (0x2aaa8000)

Make an error on ubuntu 14.04

version:v1.1-RC

make[3]:Leaving the directory `/home/houzi/tomatoware/src/cmake/cmake-3.4.0'
[ 99%] Built target cpack
make[3]: Leaving the directory `/home/houzi/tomatoware/src/cmake/cmake-3.4.0'
Linking CXX executable ../bin/ctest
Error running link command: No such file or directory
make[3]: *** [bin/ctest] erro 2
make[3]:Leaving the directory `/home/houzi/tomatoware/src/cmake/cmake-3.4.0'
make[2]: *** [Source/CMakeFiles/ctest.dir/all] erro 2
make[2]:Leaving the directory `/home/houzi/tomatoware/src/cmake/cmake-3.4.0'
make[1]: *** [all] erro 2
make[1]:Leaving the directory `/home/houzi/tomatoware/src/cmake/cmake-3.4.0'
make: *** [tomatoware] erro 2

About tomatoware compile busybox problem

tomaoware had instructions not compile rely kernel software , is not busybox is to come with the kernel ?
But I see a condensed version of the compiler on entware-ng!
I do not quite understand !Also I try to compile busybox tomatoware time error !

mipsel cross-compile fails for gdbm

Building commit 30280bc fails for me in Debian 8 (jessie) with the output below.

A quick google search turned up something that may be relevant: https://patchwork.ozlabs.org/patch/771300/

make[1]: Leaving directory '/home/ben/projects/tomatoware/src/libreadline/readline-7.0'
+ touch .installed
+ cd /home/ben/projects/tomatoware/src/libgdbm
+ '[' '!' -f .extracted ']'
+ rm -rf gdbm-1.13
+ tar zxvf gdbm-1.13.tar.gz
gdbm-1.13/
gdbm-1.13/NOTE-WARNING
gdbm-1.13/doc/
gdbm-1.13/doc/gdbm.3
gdbm-1.13/doc/fdl.texi
gdbm-1.13/doc/stamp-vti
gdbm-1.13/doc/Makefile.in
gdbm-1.13/doc/gdbm.texi
gdbm-1.13/doc/Makefile.am
gdbm-1.13/doc/gdbmtool.1
gdbm-1.13/doc/gdbm_dump.1
gdbm-1.13/doc/version.texi
gdbm-1.13/doc/gdbm.info
gdbm-1.13/doc/gdbm_load.1
gdbm-1.13/po/
gdbm-1.13/po/da.gmo
gdbm-1.13/po/sr.gmo
gdbm-1.13/po/uk.gmo
gdbm-1.13/po/da.po
gdbm-1.13/po/fr.gmo
gdbm-1.13/po/de.gmo
gdbm-1.13/po/de.po
gdbm-1.13/po/fr.po
gdbm-1.13/po/stamp-po
gdbm-1.13/po/insert-header.sin
gdbm-1.13/po/fi.po
gdbm-1.13/po/Makefile.in.in
gdbm-1.13/po/vi.gmo
gdbm-1.13/po/eo.po
gdbm-1.13/po/vi.po
gdbm-1.13/po/pl.po
gdbm-1.13/po/quot.sed
gdbm-1.13/po/pl.gmo
gdbm-1.13/po/fi.gmo
gdbm-1.13/po/[email protected]
gdbm-1.13/po/pt_BR.po
gdbm-1.13/po/Makevars
gdbm-1.13/po/ja.po
gdbm-1.13/po/uk.po
gdbm-1.13/po/ja.gmo
gdbm-1.13/po/pt_BR.gmo
gdbm-1.13/po/gdbm.pot
gdbm-1.13/po/boldquot.sed
gdbm-1.13/po/sr.po
gdbm-1.13/po/[email protected]
gdbm-1.13/po/eo.gmo
gdbm-1.13/po/remove-potcdate.sin
gdbm-1.13/po/LINGUAS
gdbm-1.13/po/POTFILES.in
gdbm-1.13/po/Rules-quot
gdbm-1.13/git2chg.awk
gdbm-1.13/AUTHORS
gdbm-1.13/ABOUT-NLS
gdbm-1.13/m4/
gdbm-1.13/m4/libtool.m4
gdbm-1.13/m4/nls.m4
gdbm-1.13/m4/longlong.m4
gdbm-1.13/m4/ltsugar.m4
gdbm-1.13/m4/ltoptions.m4
gdbm-1.13/m4/lt~obsolete.m4
gdbm-1.13/m4/lib-ld.m4
gdbm-1.13/m4/lib-prefix.m4
gdbm-1.13/m4/iconv.m4
gdbm-1.13/m4/ltversion.m4
gdbm-1.13/m4/progtest.m4
gdbm-1.13/m4/intlmacosx.m4
gdbm-1.13/m4/gettext.m4
gdbm-1.13/m4/lib-link.m4
gdbm-1.13/m4/po.m4
gdbm-1.13/autoconf.h.in
gdbm-1.13/Makefile.in
gdbm-1.13/export/
gdbm-1.13/export/export.c
gdbm-1.13/export/Makefile.in
gdbm-1.13/export/Makefile.am
gdbm-1.13/build-aux/
gdbm-1.13/build-aux/missing
gdbm-1.13/build-aux/compile
gdbm-1.13/build-aux/depcomp
gdbm-1.13/build-aux/config.sub
gdbm-1.13/build-aux/ltmain.sh
gdbm-1.13/build-aux/install-sh
gdbm-1.13/build-aux/config.rpath
gdbm-1.13/build-aux/mdate-sh
gdbm-1.13/build-aux/config.guess
gdbm-1.13/build-aux/texinfo.tex
gdbm-1.13/build-aux/ylwrap
gdbm-1.13/src/
gdbm-1.13/src/gdbm.h.in
gdbm-1.13/src/gdbmexp.c
gdbm-1.13/src/gdbmdelete.c
gdbm-1.13/src/gdbmexists.c
gdbm-1.13/src/version.c
gdbm-1.13/src/util.c
gdbm-1.13/src/gdbmload.c
gdbm-1.13/src/debug.c
gdbm-1.13/src/gdbmtool.c
gdbm-1.13/src/gram.y
gdbm-1.13/src/gdbmapp.h
gdbm-1.13/src/parseopt.c
gdbm-1.13/src/input-std.c
gdbm-1.13/src/gram.c
gdbm-1.13/src/gdbmerrno.c
gdbm-1.13/src/gdbmclose.c
gdbm-1.13/src/gdbmconst.h
gdbm-1.13/src/gdbmsync.c
gdbm-1.13/src/gdbm_load.c
gdbm-1.13/src/proto.h
gdbm-1.13/src/gdbmtool.h
gdbm-1.13/src/falloc.c
gdbm-1.13/src/progname.c
gdbm-1.13/src/gdbmreorg.c
gdbm-1.13/src/Makefile.in
gdbm-1.13/src/gdbmstore.c
gdbm-1.13/src/mem.c
gdbm-1.13/src/findkey.c
gdbm-1.13/src/gdbmfetch.c
gdbm-1.13/src/gdbm_dump.c
gdbm-1.13/src/mmap.c
gdbm-1.13/src/gdbmopen.c
gdbm-1.13/src/gdbmsetopt.c
gdbm-1.13/src/hash.c
gdbm-1.13/src/Makefile.am
gdbm-1.13/src/gram.h
gdbm-1.13/src/lex.c
gdbm-1.13/src/gdbmimp.c
gdbm-1.13/src/update.c
gdbm-1.13/src/var.c
gdbm-1.13/src/gdbmcount.c
gdbm-1.13/src/base64.c
gdbm-1.13/src/gdbmdump.c
gdbm-1.13/src/fullio.c
gdbm-1.13/src/input-rl.c
gdbm-1.13/src/systems.h
gdbm-1.13/src/gdbmseq.c
gdbm-1.13/src/bucket.c
gdbm-1.13/src/gettext.h
gdbm-1.13/src/gdbmfdesc.c
gdbm-1.13/src/err.c
gdbm-1.13/src/gdbmdefs.h
gdbm-1.13/src/datconv.c
gdbm-1.13/src/gdbm.magic
gdbm-1.13/src/lex.l
gdbm-1.13/src/recover.c
gdbm-1.13/src/lock.c
gdbm-1.13/COPYING
gdbm-1.13/configure.ac
gdbm-1.13/aclocal.m4
gdbm-1.13/INSTALL
gdbm-1.13/Makefile.am
gdbm-1.13/compat/
gdbm-1.13/compat/fetch.c
gdbm-1.13/compat/ndbm.h
gdbm-1.13/compat/dbmdirfno.c
gdbm-1.13/compat/dbmopen.c
gdbm-1.13/compat/dbmdelete.c
gdbm-1.13/compat/dbminit.c
gdbm-1.13/compat/dbmstore.c
gdbm-1.13/compat/dbmrdonly.c
gdbm-1.13/compat/Makefile.in
gdbm-1.13/compat/dbmseq.c
gdbm-1.13/compat/dbmerr.c
gdbm-1.13/compat/dbmfetch.c
gdbm-1.13/compat/Makefile.am
gdbm-1.13/compat/delete.c
gdbm-1.13/compat/dbm-priv.h
gdbm-1.13/compat/seq.c
gdbm-1.13/compat/close.c
gdbm-1.13/compat/dbm.h
gdbm-1.13/compat/store.c
gdbm-1.13/compat/dbmpagfno.c
gdbm-1.13/compat/dbmclose.c
gdbm-1.13/README
gdbm-1.13/NEWS
gdbm-1.13/ChangeLog
gdbm-1.13/tests/
gdbm-1.13/tests/gtdump.c
gdbm-1.13/tests/fetch00.at
gdbm-1.13/tests/dtdump.c
gdbm-1.13/tests/dbmfetch01.at
gdbm-1.13/tests/create00.at
gdbm-1.13/tests/progname.h
gdbm-1.13/tests/cloexec01.at
gdbm-1.13/tests/dbmfetch03.at
gdbm-1.13/tests/setopt01.at
gdbm-1.13/tests/dbmdel02.at
gdbm-1.13/tests/num2word.c
gdbm-1.13/tests/setopt00.at
gdbm-1.13/tests/dtload.c
gdbm-1.13/tests/blocksize02.at
gdbm-1.13/tests/dbmdel00.at
gdbm-1.13/tests/g_reorg_ce.c
gdbm-1.13/tests/gtopt.c
gdbm-1.13/tests/gtdel.c
gdbm-1.13/tests/delete00.at
gdbm-1.13/tests/d_creat_ce.c
gdbm-1.13/tests/Makefile.in
gdbm-1.13/tests/delete02.at
gdbm-1.13/tests/version.at
gdbm-1.13/tests/dbmdel01.at
gdbm-1.13/tests/dtfetch.c
gdbm-1.13/tests/cloexec03.at
gdbm-1.13/tests/fetch01.at
gdbm-1.13/tests/Makefile.am
gdbm-1.13/tests/dbmcreate00.at
gdbm-1.13/tests/testsuite.at
gdbm-1.13/tests/delete01.at
gdbm-1.13/tests/gtrecover.c
gdbm-1.13/tests/blocksize00.at
gdbm-1.13/tests/cloexec00.at
gdbm-1.13/tests/gtfetch.c
gdbm-1.13/tests/blocksize01.at
gdbm-1.13/tests/cloexec02.at
gdbm-1.13/tests/g_open_ce.c
gdbm-1.13/tests/gtver.c
gdbm-1.13/tests/testsuite
gdbm-1.13/tests/dbmfetch02.at
gdbm-1.13/tests/dtdel.c
gdbm-1.13/tests/gtload.c
gdbm-1.13/tests/dbmfetch00.at
gdbm-1.13/tests/fdop.c
gdbm-1.13/tests/dbmcvt.at
gdbm-1.13/tests/package.m4
gdbm-1.13/tests/atlocal.in
gdbm-1.13/configure
gdbm-1.13/THANKS
+ touch .extracted
+ cd gdbm-1.13
+ '[' '!' -f .configured ']'
+ LDFLAGS='-L/home/ben/projects/tomatoware/mmc/tomatoware/lib -s -Wl,--dynamic-linker=/mmc/tomatoware/lib/ld-uClibc.so.1 -Wl,-rpath,/mmc/tomatoware/lib -Wl,-rpath-link,/home/ben/projects/tomatoware/mmc/tomatoware/lib'
+ CPPFLAGS=-I/home/ben/projects/tomatoware/mmc/tomatoware/include
+ CFLAGS='-O2 -pipe -mips32 -mtune=mips32'
+ CXXFLAGS='-O2 -pipe -mips32 -mtune=mips32'
+ ./configure --prefix=/mmc/tomatoware --host=mipsel-linux
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for mipsel-linux-strip... mipsel-linux-strip
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking for mipsel-linux-gcc... mipsel-linux-gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... yes
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether mipsel-linux-gcc accepts -g... yes
checking for mipsel-linux-gcc option to accept ISO C89... none needed
checking whether mipsel-linux-gcc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of mipsel-linux-gcc... gcc3
checking how to run the C preprocessor... mipsel-linux-gcc -E
checking build system type... x86_64-unknown-linux-gnu
checking host system type... mipsel-unknown-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by mipsel-linux-gcc... /opt/tomatoware/mipsel-soft-mmc-tomatoware/usr/mipsel-buildroot-linux-uclibc/bin/ld
checking if the linker (/opt/tomatoware/mipsel-soft-mmc-tomatoware/usr/mipsel-buildroot-linux-uclibc/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /opt/tomatoware/mipsel-soft-mmc-tomatoware/usr/bin//mipsel-linux-nm -B
checking the name lister (/opt/tomatoware/mipsel-soft-mmc-tomatoware/usr/bin//mipsel-linux-nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert x86_64-unknown-linux-gnu file names to mipsel-unknown-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /opt/tomatoware/mipsel-soft-mmc-tomatoware/usr/mipsel-buildroot-linux-uclibc/bin/ld option to reload object files... -r
checking for mipsel-linux-objdump... mipsel-linux-objdump
checking how to recognize dependent libraries... pass_all
checking for mipsel-linux-dlltool... no
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for mipsel-linux-ar... mipsel-linux-ar
checking for archiver @FILE support... @
checking for mipsel-linux-strip... (cached) mipsel-linux-strip
checking for mipsel-linux-ranlib... mipsel-linux-ranlib
checking command to parse /opt/tomatoware/mipsel-soft-mmc-tomatoware/usr/bin//mipsel-linux-nm -B output from mipsel-linux-gcc object... ok
checking for sysroot... no
checking for mipsel-linux-mt... no
checking for mt... mt
configure: WARNING: using cross tools not prefixed with host triplet
checking if mt is a manifest tool... no
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if mipsel-linux-gcc supports -fno-rtti -fno-exceptions... no
checking for mipsel-linux-gcc option to produce PIC... -fPIC -DPIC
checking if mipsel-linux-gcc PIC flag -fPIC -DPIC works... yes
checking if mipsel-linux-gcc static flag -static works... yes
checking if mipsel-linux-gcc supports -c -o file.o... yes
checking if mipsel-linux-gcc supports -c -o file.o... (cached) yes
checking whether the mipsel-linux-gcc linker (/opt/tomatoware/mipsel-soft-mmc-tomatoware/usr/mipsel-buildroot-linux-uclibc/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... 64
checking for bison... bison -y
checking for flex... flex
checking lex output file root... lex.yy
checking lex library... -lfl
checking whether yytext is a pointer... yes
checking for an ANSI C-conforming const... yes
checking for unsigned long long int... yes
checking whether NLS is requested... yes
checking for msgfmt... /usr/bin/msgfmt
checking for gmsgfmt... /usr/bin/msgfmt
checking for xgettext... /usr/bin/xgettext
checking for msgmerge... /usr/bin/msgmerge
checking for ld used by GCC... /opt/tomatoware/mipsel-soft-mmc-tomatoware/usr/mipsel-buildroot-linux-uclibc/bin/ld
checking if the linker (/opt/tomatoware/mipsel-soft-mmc-tomatoware/usr/mipsel-buildroot-linux-uclibc/bin/ld) is GNU ld... yes
checking for shared library run path origin... done
checking for CFPreferencesCopyAppValue... no
checking for CFLocaleCopyCurrent... no
checking for GNU gettext in libc... no
checking for iconv... yes
checking for working iconv... guessing yes
checking how to link with libiconv... /home/ben/projects/tomatoware/mmc/tomatoware/lib/libiconv.so -Wl,-rpath -Wl,/home/ben/projects/tomatoware/mmc/tomatoware/lib
checking for GNU gettext in libintl... yes
checking whether to use NLS... yes
checking where the gettext function comes from... external libintl
checking how to link with libintl... /home/ben/projects/tomatoware/mmc/tomatoware/lib/libintl.so /home/ben/projects/tomatoware/mmc/tomatoware/lib/libiconv.so -lc -Wl,-rpath -Wl,/home/ben/projects/tomatoware/mmc/tomatoware/lib
checking sys/file.h usability... yes
checking sys/file.h presence... yes
checking for sys/file.h... yes
checking sys/termios.h usability... yes
checking sys/termios.h presence... yes
checking for sys/termios.h... yes
checking for string.h... (cached) yes
checking locale.h usability... yes
checking locale.h presence... yes
checking for locale.h... yes
checking getopt.h usability... yes
checking getopt.h presence... yes
checking for getopt.h... yes
checking for main in -ldbm... no
checking for main in -lndbm... no
checking for ftruncate... yes
checking for flock... yes
checking for lockf... yes
checking for fsync... yes
checking for setlocale... yes
checking for getopt_long... yes
checking for stdlib.h... (cached) yes
checking for unistd.h... (cached) yes
checking for sys/param.h... yes
checking for getpagesize... yes
checking for working mmap... no
checking for msync... yes
checking for off_t... yes
checking size of off_t... 8
checking for struct stat.st_blksize... yes
checking for tputs in -lncurses... yes
checking for readline in -lreadline... yes
checking readline/readline.h usability... yes
checking readline/readline.h presence... yes
checking for readline/readline.h... yes
checking for rl_completion_matches... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating tests/Makefile
config.status: creating tests/atlocal
config.status: creating po/Makefile.in
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating src/gdbm.h
config.status: creating doc/Makefile
config.status: creating compat/Makefile
config.status: creating export/Makefile
config.status: creating autoconf.h
config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing po-directories commands
config.status: creating po/POTFILES
config.status: creating po/Makefile
config.status: executing tests/atconfig commands
config.status: executing status commands

*******************************************************************
GDBM settings summary:

Compatibility library ......................... no
Compatibility export tool ..................... no
Memory mapped I/O ............................. yes
GNU Readline .................................. yes
Debugging support ............................. no
*******************************************************************

+ touch .configured
+ '[' '!' -f .built ']'
+ make -j4
make[1]: Entering directory '/home/ben/projects/tomatoware/src/libgdbm/gdbm-1.13'
make  all-recursive
make[2]: Entering directory '/home/ben/projects/tomatoware/src/libgdbm/gdbm-1.13'
Making all in po
make[3]: Entering directory '/home/ben/projects/tomatoware/src/libgdbm/gdbm-1.13/po'
make[3]: Leaving directory '/home/ben/projects/tomatoware/src/libgdbm/gdbm-1.13/po'
Making all in src
make[3]: Entering directory '/home/ben/projects/tomatoware/src/libgdbm/gdbm-1.13/src'
make  all-am
make[4]: Entering directory '/home/ben/projects/tomatoware/src/libgdbm/gdbm-1.13/src'
  CC       err.o
  CC       mem.o
  CC       parseopt.o
  CC       progname.o
  CC       gdbmclose.lo
  CC       gdbmcount.lo
  CC       gdbmdelete.lo
  CC       gdbmdump.lo
  CC       gdbmerrno.lo
  CC       gdbmexists.lo
  CC       gdbmexp.lo
  CC       gdbmfdesc.lo
  CC       gdbmfetch.lo
  CC       gdbmload.lo
  CC       gdbmopen.lo
gdbmopen.c:35:40: error: unknown type name 'blksize_t'
 compute_directory_size (GDBM_FILE dbf, blksize_t block_size,
                                        ^~~~~~~~~
gdbmopen.c: In function 'gdbm_fd_open':
gdbmopen.c:189:7: warning: implicit declaration of function 'compute_directory_size' [-Wimplicit-function-declaration]
       compute_directory_size (dbf, block_size, &dir_size, &dir_bits);
       ^~~~~~~~~~~~~~~~~~~~~~
Makefile:708: recipe for target 'gdbmopen.lo' failed
make[4]: *** [gdbmopen.lo] Error 1
make[4]: *** Waiting for unfinished jobs....
make[4]: Leaving directory '/home/ben/projects/tomatoware/src/libgdbm/gdbm-1.13/src'
Makefile:483: recipe for target 'all' failed
make[3]: *** [all] Error 2
make[3]: Leaving directory '/home/ben/projects/tomatoware/src/libgdbm/gdbm-1.13/src'
Makefile:456: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/home/ben/projects/tomatoware/src/libgdbm/gdbm-1.13'
Makefile:387: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/ben/projects/tomatoware/src/libgdbm/gdbm-1.13'
Makefile:4: recipe for target 'tomatoware' failed
make: *** [tomatoware] Error 2
ben@vb-debian:~/projects/tomatoware$ 

GO mipsel compiler problem

Don't know whether mipsel support go program compilation, feel the kernel version should be too low? Do not know if you have any good suggestions?

how to static compile kdig

@lancethepants I tried static compile kdig 2days but failed..so I need you help ~

My process:

#libedit
./configure --prefix=/mmc/s --enable-shared=no

#libunistring
./configure --prefix=/mmc/s --enable-shared=no

#gmp
./configure --prefix=/mmc/s --enable-shared=no

##nettle
./configure --prefix=/mmc/s --disable-openssl --disable-shared --disable-documentation --with-lib-path="/mmc/lib"

#gnutls: failed
LDFLAGS="-lintl -lnettle -lhogweed -lgmp -ldl -Wl,-static -static -static-libgcc -s" NETTLE_CFLAGS="-I/mmc/s/include" NETTLE_LIBS="-L/mmc/s/lib" HOGWEED_CFLAGS="-I/mmc/s/include" HOGWEED_LIBS="-L/mmc/lib" GMP_CFLAGS="-I/mmc/s/include" GMP_LIBS="-L/mmc/s/lib" ./configure --prefix=/mmc/s --enable-static=yes --enable-shared=no --with-default-trust-store-file=/mmc/ssl/certs/ca-certificates.crt --with-included-libtasn1 --without-p11-kit --disable-openssl-compatibility --disable-heartbeat-support --disable-libdane --disable-doc --disable-srp-authentication --disable-psk-authentication --disable-full-test-suite --without-idn

#knot-dns: failed
LIBS="-lintl -lnettle -lgmp -lunistring -ldl -lz" LDFLAGS="-Wl,-static -static -static-libgcc -s" ./configure --prefix=/opt --disable-daemon --disable-modules --disable-documentation --disable-fastparser --without-libidn

Any suggest?

tomatoware-mipsel compiler unbound Error

Hello! You do not know what is a good solution
Error:

collect2: error: ld returned 1 exit status
Makefile:318: recipe for target 'unbound-anchor' failed
make: *** [unbound-anchor] Error 1
 LDFLAGS="-L/mmc/lib -Wl,--gc-sections" CXXFLA
GS="-O3 -mtune=mips32 -mips32 -ffunction-sections -fdata-sections" ./configure -
-prefix=/mmc/unbound --sysconfdir=/mmc/unbound/etc --with-ssl=/mmc --with-libexp
at=/mmc --enable-static-exe --enable-static --disable-shared --disable-flto

make LIBS="-all-static -lcrypto -lz -ldl"

compile MTR error

I do not know too new toolchain or dynamic dependency file causes a compilation error!
Can you help me?

gcc  -g -O2 -Wall -Wno-pointer-sign  curses.o  -o mtr mtr.o net.o dns.o raw.o split.o display.o report.o getopt.o getopt1.o select.o asn.o    -lm -lncurses 
dns.o: In function `dorequest':
/mmc/compile/mtr/dns.c:926: undefined reference to `res_nmkquery'
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:475: mtr] Error 1
make[2]: Leaving directory '/mmc/compile/mtr'
make[1]: *** [Makefile:561: all-recursive] Error 1
make[1]: Leaving directory '/mmc/compile/mtr'
make: *** [Makefile:376: all] Error 2

Error building bzip2 for ARM (missing arm-linux-gcc)

Getting an error about arm-linux-gcc not being in PATH when it's trying to build bzip2:

$ make
./scripts/host-tools.sh
+++ pwd
++ BASE=/mnt/quad/projects/tomatoware
++ SRC=/mnt/quad/projects/tomatoware/src
++ PATCHES=/mnt/quad/projects/tomatoware/patches
++ RPATH=/mnt/lib
++ DEST=/mnt/quad/projects/tomatoware/mnt
++ LDFLAGS='-L/mnt/quad/projects/tomatoware/mnt/lib -s -Wl,--dynamic-linker=/mnt/lib/ld-uClibc.so.1 -Wl,-rpath,/mnt/lib -Wl,-rpath-link,/mnt/quad/projects/tomatoware/mnt/lib'
++ CPPFLAGS=-I/mnt/quad/projects/tomatoware/mnt/include
++ CFLAGS='-O2 -pipe -march=armv7-a -mtune=cortex-a9'
++ CXXFLAGS='-O2 -pipe -march=armv7-a -mtune=cortex-a9'
++ CONFIGURE='./configure --prefix=/mnt --host=arm-linux'
+++ nproc
++ MAKE='make -j4'
++ ORIGINALPATH=/opt/tomatoware/arm-soft-mnt/bin/:/opt/tomatoware/mipsel-soft-mnt/bin/:/home/ben/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/snap/bin
++ export PATH=/mnt/quad/projects/tomatoware/native/bin:/opt/tomatoware/arm-soft-mnt/bin/:/opt/tomatoware/mipsel-soft-mnt/bin/:/home/ben/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/snap/bin
++ PATH=/mnt/quad/projects/tomatoware/native/bin:/opt/tomatoware/arm-soft-mnt/bin/:/opt/tomatoware/mipsel-soft-mnt/bin/:/home/ben/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/snap/bin
++ export CCACHE_DIR=/home/ben/.ccache
++ CCACHE_DIR=/home/ben/.ccache
++ PERL_VERSION=5.32.1
++ BINUTILS_VERSION=2.36.1
++ GCC_VERSION=10.2.0
++ NINJA_VERSION=1.10.2
++ CMAKE_VERSION=3.19.6
++ CCACHE_VERSION=4.2
++ '[' arm = arm ']'
++ GNUEABI=gnueabi
++ '[' 1 == 1 ']'
++ MIPSEL=mipsel-tomatoware-linux-uclibc
++ '[' 1 == 1 ']'
++ '[' arm == arm ']'
++ GCCforClang=5.1.0
+++ sort -V
+++ head -n1
++++ g++ -dumpversion
+++ printf '%s\n' 5.1.0 8
++ '[' '!' 5.1.0 = 5.1.0 ']'
+ Status host-ccache
+ echo -e '\033]2;compiling' 'host-ccache\007'

+ cd /mnt/quad/projects/tomatoware/src/ccache
+ '[' '!' -f .extracted-native ']'
+ cd ccache-4.2-native
+ '[' '!' -f .built-native ']'
+ '[' '!' -f .symlinked-native ']'
+ Status host-ninja
+ echo -e '\033]2;compiling' 'host-ninja\007'

+ cd /mnt/quad/projects/tomatoware/src/ninja
+ '[' '!' -f .extracted-native ']'
+ cd ninja-v1.10.2-native
+ '[' '!' -f .built-native ']'
+ Status host-cmake
+ echo -e '\033]2;compiling' 'host-cmake\007'

+ cd /mnt/quad/projects/tomatoware/src/cmake
+ '[' '!' -f .extracted-native ']'
+ cd cmake-3.19.6-native
+ '[' '!' -f .built-native ']'
+ Status host-gcc
+ echo -e '\033]2;compiling' 'host-gcc\007'

+ '[' '' == 1 ']'
./scripts/base.sh
+++ pwd
++ BASE=/mnt/quad/projects/tomatoware
++ SRC=/mnt/quad/projects/tomatoware/src
++ PATCHES=/mnt/quad/projects/tomatoware/patches
++ RPATH=/mnt/lib
++ DEST=/mnt/quad/projects/tomatoware/mnt
++ LDFLAGS='-L/mnt/quad/projects/tomatoware/mnt/lib -s -Wl,--dynamic-linker=/mnt/lib/ld-uClibc.so.1 -Wl,-rpath,/mnt/lib -Wl,-rpath-link,/mnt/quad/projects/tomatoware/mnt/lib'
++ CPPFLAGS=-I/mnt/quad/projects/tomatoware/mnt/include
++ CFLAGS='-O2 -pipe -march=armv7-a -mtune=cortex-a9'
++ CXXFLAGS='-O2 -pipe -march=armv7-a -mtune=cortex-a9'
++ CONFIGURE='./configure --prefix=/mnt --host=arm-linux'
+++ nproc
++ MAKE='make -j4'
++ ORIGINALPATH=/opt/tomatoware/arm-soft-mnt/bin/:/opt/tomatoware/mipsel-soft-mnt/bin/:/home/ben/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/snap/bin
++ export PATH=/mnt/quad/projects/tomatoware/native/bin:/opt/tomatoware/arm-soft-mnt/bin/:/opt/tomatoware/mipsel-soft-mnt/bin/:/home/ben/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/snap/bin
++ PATH=/mnt/quad/projects/tomatoware/native/bin:/opt/tomatoware/arm-soft-mnt/bin/:/opt/tomatoware/mipsel-soft-mnt/bin/:/home/ben/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/snap/bin
++ export CCACHE_DIR=/home/ben/.ccache
++ CCACHE_DIR=/home/ben/.ccache
++ PERL_VERSION=5.32.1
++ BINUTILS_VERSION=2.36.1
++ GCC_VERSION=10.2.0
++ NINJA_VERSION=1.10.2
++ CMAKE_VERSION=3.19.6
++ CCACHE_VERSION=4.2
++ '[' arm = arm ']'
++ GNUEABI=gnueabi
++ '[' 1 == 1 ']'
++ MIPSEL=mipsel-tomatoware-linux-uclibc
++ '[' 1 == 1 ']'
++ '[' arm == arm ']'
++ GCCforClang=5.1.0
+++ sort -V
+++ head -n1
++++ g++ -dumpversion
+++ printf '%s\n' 5.1.0 8
++ '[' '!' 5.1.0 = 5.1.0 ']'
+ Status bzip2
+ echo -e '\033]2;compiling' 'bzip2\007'

+ BZIP2_VERSION=1.0.8
+ cd /mnt/quad/projects/tomatoware/src/bzip2
+ '[' '!' -f .extracted ']'
+ cd bzip2-1.0.8
+ '[' '!' -f .patched ']'
+ '[' '!' -f .built ']'
+ make -j4
make[1]: Entering directory '/mnt/quad/projects/tomatoware/src/bzip2/bzip2-1.0.8'
arm-linux-gcc -O2 -pipe -march=armv7-a -mtune=cortex-a9 -fPIC -Wall -O2 -g -D_FILE_OFFSET_BITS=64 -c huffman.c

If compilation produces errors, or a large number of warnings,
please read README.COMPILATION.PROBLEMS -- you might be able to
adjust the flags in this Makefile to improve matters.

Also in README.COMPILATION.PROBLEMS are some hints that may help
if your build produces an executable which is unable to correctly
handle so-called 'large files' -- files of size 2GB or more.

arm-linux-gcc -O2 -pipe -march=armv7-a -mtune=cortex-a9 -fPIC -Wall -O2 -g -D_FILE_OFFSET_BITS=64 -c blocksort.c
arm-linux-gcc -O2 -pipe -march=armv7-a -mtune=cortex-a9 -fPIC -Wall -O2 -g -D_FILE_OFFSET_BITS=64 -c crctable.c
ccache: error: Could not find compiler "arm-linux-gcc" in PATH
make[1]: *** [Makefile:123: huffman.o] Error 1
make[1]: *** Waiting for unfinished jobs....
ccache: error: Could not find compiler "arm-linux-gcc" in PATH
make[1]: *** [Makefile:125: crctable.o] Error 1
ccache: error: Could not find compiler "arm-linux-gcc" in PATH
make[1]: *** [Makefile:121: blocksort.o] Error 1
make[1]: Leaving directory '/mnt/quad/projects/tomatoware/src/bzip2/bzip2-1.0.8'
make: *** [Makefile:5: tomatoware] Error 2

How to make a package to know where to found toolchains which tomatoware provided.

Hi, I have a ASUS RT-AC66U route(MIPS), install package with entware-eg, it worked well.

Though, some package is outdated, e.g. shadowsocks-libev, I want to compile it myself.

I read this issue #11, still not help enough.

Following scripts is my attempt guide by the official asuswrt-merlin document here.

# install older package which need for compile asuswrt-merlin for LinuxMint 17.3
sudo apt-get install bison flex g++ g++-4.4 g++-multilib gawk gcc-multilib \
     gconf-editor gitk lib32z1-dev libncurses5 libncurses5-dev \
     libstdc++6-4.4-dev libtool m4 pkg-config zlib1g-dev gperf lib32z1-dev \
     libelf1:i386 libmpc2:i386

brcm=~/Git/asuswrt-merlin/tools/brcm

# make this script know the old tool chains.
export PATH=$brcm/hndtools-mipsel-linux/bin:$brcm/hndtools-mipsel-uclibc/bin:$PATH
export LD_LIBRARY_PATH=$brcm/hndtools-mipsel-uclibc/lib:/usr/local/lib:/usr/lib
export LIBPATH=$LD_LIBRARY_PATH
export CC=mipsel-linux-uclibc-gcc
export CXX=mipsel-linux-uclibc-g++
export AR=mipsel-linux-uclibc-ar
export RANLIB=mipsel-linux-uclibc-ranlib

# and then, configure and make. compile is passed for me, except, link failed
# seem like GNU tool chains too old and not support by this version shadowsocks-libev
# I create issue for that project, And they told me, need update to a new libc version, 
# or, try to use tomatoware, that maybe worked.

I could compile shadowsocks-libev successfully in my local box and remote VPS server.
I just no any idea about how to use tomatoware toolchains to compile MIPS arch
binary for my route, and how to make shadowsocks-libev to know use tomatoware?

Is there exist a guide for this? Thanks.

Time lags behind in Asteriek logs 3 hours

Hello! Time lags behind in Asteriek notice logs 3 hours. System time GMT-3 - Mowcow correct. Command "!date" in Asterisk console correct. But time in logs Asterisk incorrect.

static compile python-3.6.1

Hi, Lance
I am static compiling Python with the following problems:(How should i solve it? )

LDFLAGS="-Wl,-static -static -static-libgcc -static-libstdc++ -lintl -s" ./configure --
disable-ipv6 --prefix=/mmc/prthon-3.6.1
Modules/_localemodule.o: In function `PyIntl_bindtextdomain':
/mmc/compile/Python-3.6.1/./Modules/_localemodule.c:539: undefined reference to `libintl_bindtextdomain'
Modules/_localemodule.o: In function `PyIntl_dcgettext':
/mmc/compile/Python-3.6.1/./Modules/_localemodule.c:495: undefined reference to `libintl_dcgettext'
Modules/_localemodule.o: In function `PyIntl_dgettext':
/mmc/compile/Python-3.6.1/./Modules/_localemodule.c:481: undefined reference to `libintl_dgettext'
Modules/_localemodule.o: In function `PyIntl_gettext':
/mmc/compile/Python-3.6.1/./Modules/_localemodule.c:468: undefined reference to `libintl_gettext'
Modules/_localemodule.o: In function `PyIntl_textdomain':
/mmc/compile/Python-3.6.1/./Modules/_localemodule.c:508: undefined reference to `libintl_textdomain'
collect2: error: ld returned 1 exit status
make: *** [Makefile:736: Programs/_freeze_importlib] Error 1

uClibc without lresolve support?

I want compile a simple app on tomatoware, but i got these error:(source: https://github.com/clowwindy/ChinaDNS-C)

cc -Wall -O3 src/chinadns.c -lresolv -o chinadns
src/chinadns.c: In function 'parse_ip_list':
src/chinadns.c:281:3: warning: implicit declaration of function 'getline' [-Wimplicit-function-declaration]
/jffs/tmp/ccB9D6xr.o: In function hostname_from_question': chinadns.c:(.text+0x48): undefined reference to__ns_parserr'
/jffs/tmp/ccB9D6xr.o: In function should_filter_query': chinadns.c:(.text+0x1f4): undefined reference to__ns_parserr'
/jffs/tmp/ccB9D6xr.o: In function main': chinadns.c:(.text.startup+0x94c): undefined reference to__ns_initparse'
chinadns.c:(.text.startup+0xbc0): undefined reference to `__ns_initparse'
collect2: ld returned 1 exit status
Makefile:7: recipe for target 'chinadns' failed
make: *** [chinadns] Error 1

I google it, many posts say libresolve.a/libresolve.so in uClibc just a stub, not really work, so i got these "ns_parserr", "ns_initparse" error. Anyway, I dont know these function come from BIND or libc...

But i also found someting like: enable "UCLIBC_HAS_RESOLVER_SUPPORT" when compile uClibc can let it work.

@lancethepants, any suggest?

binutils --enable-plugin

If they have the possibility, please rebuild binutils with the --enable-plugins flag.

There are a lot of programs and libs (alsa, bison, flex, mpfr, etc...) fail to compile and install natively in router from tomatoware.

Compile fail with the error: (in case of GCC 5.3)

sorry - this program has been built without plugin support

The problem is binutils (in tomatoware) has NO built with plugin support (--enable-plugins)

OpenWRT has workaround of these ( a patch) to enable plugins in binutils:

https://dev.openwrt.org/changeset/43783/trunk/toolchain/binutils/Makefile#file0

Thanks.

Can not be statically compiled curl

l try:

LIBS="-ldl -lz -lcurl" LDFLAGS="-Wl,-static -static -static-libgcc" ./configure --prefix=/mmc/curl

then
l try:
LDFLAGS="-all-static"

same error:

/mmc/lib/gcc/arm-buildroot-linux-uclibcgnueabi/5.2.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: attempted sta
tic link of dynamic object `/mmc/lib/libcurl.so'
collect2: error: ld returned 1 exit status

I dynamically compiled database connections needed:

libcurl.so.4 => /mmc/lib/libcurl.so.4 (0x4014c000)
libz.so.1 => /mmc/lib/libz.so.1 (0x40126000)
libc.so.1 => /mmc/lib/libc.so.1 (0x401ac000)
libssl.so.1.0.0 => /mmc/lib/libssl.so.1.0.0 (0x4021e000)
libcrypto.so.1.0.0 => /mmc/lib/libcrypto.so.1.0.0 (0x40280000)
ld-uClibc.so.1 => /mmc/lib/ld-uClibc.so.1 (0x40080000)
libdl.so.1 => /mmc/lib/libdl.so.1 (0x40403000)

About compiled tomatoware-arm compile wget can not find the makefile mistake!

ERROR:

root@ASUS:/mmc/build/wget-1.17# make
There seems to be no Makefile in this directory.
You must run ./configure before running 'make'.
GNUmakefile:106: recipe for target 'abort-due-to-no-makefile' failed
make: *** [abort-due-to-no-makefile] Error 1

I try to debug:

root@ASUS:/mmc/build/wget-1.17# make --debug=v
GNU Make 4.1
Built for arm-unknown-linux-gnu
Copyright (C) 1988-2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Reading makefiles...
Reading makefile 'GNUmakefile'...
Reading makefile 'cfg.mk' (search path) (don't care) (no ~ expansion)...
Reading makefile 'maint.mk' (search path) (no ~ expansion)...
Updating goal targets....
Considering target file 'abort-due-to-no-makefile'.
 File 'abort-due-to-no-makefile' does not exist.
 Finished prerequisites of target file 'abort-due-to-no-makefile'.
Must remake target 'abort-due-to-no-makefile'.
There seems to be no Makefile in this directory.
You must run ./configure before running 'make'.
GNUmakefile:106: recipe for target 'abort-due-to-no-makefile' failed
make: *** [abort-due-to-no-makefile] Error 1

static compiel tcpdump_4.7.4 error

Hi Lance

i use to the compile

LDFLAGS="-Wl,-static -static -static-libgcc" LIBS="-lcrypto -lpcap"

error

/mmc/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_globallookup':
dso_dlfcn.c:(.text+0x10): undefined reference to `dlopen'
dso_dlfcn.c:(.text+0x20): undefined reference to `dlsym'
dso_dlfcn.c:(.text+0x2c): undefined reference to `dlclose'
/mmc/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_bind_func':
dso_dlfcn.c:(.text+0x33c): undefined reference to `dlsym'
dso_dlfcn.c:(.text+0x3f0): undefined reference to `dlerror'
/mmc/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_bind_var':
dso_dlfcn.c:(.text+0x48c): undefined reference to `dlsym'
dso_dlfcn.c:(.text+0x53c): undefined reference to `dlerror'
/mmc/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_load':
dso_dlfcn.c:(.text+0x5a8): undefined reference to `dlopen'
dso_dlfcn.c:(.text+0x608): undefined reference to `dlclose'
dso_dlfcn.c:(.text+0x63c): undefined reference to `dlerror'
/mmc/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_pathbyaddr':
dso_dlfcn.c:(.text+0x6cc): undefined reference to `dladdr'
dso_dlfcn.c:(.text+0x72c): undefined reference to `dlerror'
/mmc/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_unload':
dso_dlfcn.c:(.text+0x788): undefined reference to `dlclose'
/mmc/lib/libcrypto.a(c_zlib.o): In function `zlib_stateful_expand_block':
c_zlib.c:(.text+0x54): undefined reference to `inflate'
/mmc/lib/libcrypto.a(c_zlib.o): In function `zlib_stateful_compress_block':
c_zlib.c:(.text+0xd8): undefined reference to `deflate'
/mmc/lib/libcrypto.a(c_zlib.o): In function `bio_zlib_free':
c_zlib.c:(.text+0x124): undefined reference to `inflateEnd'
c_zlib.c:(.text+0x140): undefined reference to `deflateEnd'
/mmc/lib/libcrypto.a(c_zlib.o): In function `zlib_stateful_finish':
c_zlib.c:(.text+0x198): undefined reference to `inflateEnd'
c_zlib.c:(.text+0x1a0): undefined reference to `deflateEnd'
/mmc/lib/libcrypto.a(c_zlib.o): In function `zlib_stateful_init':
c_zlib.c:(.text+0x228): undefined reference to `inflateInit_'
c_zlib.c:(.text+0x270): undefined reference to `deflateInit_'
/mmc/lib/libcrypto.a(c_zlib.o): In function `bio_zlib_ctrl':
c_zlib.c:(.text+0x4a8): undefined reference to `deflate'
c_zlib.c:(.text+0x564): undefined reference to `zError'
/mmc/lib/libcrypto.a(c_zlib.o): In function `bio_zlib_write':
c_zlib.c:(.text+0x6f4): undefined reference to `deflate'
c_zlib.c:(.text+0x780): undefined reference to `zError'
c_zlib.c:(.text+0x80c): undefined reference to `deflateInit_'
/mmc/lib/libcrypto.a(c_zlib.o): In function `bio_zlib_read':
c_zlib.c:(.text+0x8f0): undefined reference to `inflate'
c_zlib.c:(.text+0x94c): undefined reference to `zError'
c_zlib.c:(.text+0x9cc): undefined reference to `inflateInit_'
collect2: error: ld returned 1 exit status
make: *** [Makefile:361: tcpdump] Error 1

Asterisk CDR MySQL

Hello! Only SQLite can be used? There is a support of mysql? There is no module cdr_mysql.so

static compile redsocks2 with tomatoware-arm

redsocks2: https://github.com/semigodking/redsocks.git

Compile shared version is fine, but can not run on my EA6900 with tomato and optware installed or entware installed.

So i decide to compile static version, after ask the redsocks2 developer, i use:

CFLAGS=-static
make

But i got these error:

/opt/lib//libcrypto.a(c_zlib.o): In function zlib_stateful_expand_block': c_zlib.c:(.text+0x54): undefined reference toinflate'
/opt/lib//libcrypto.a(c_zlib.o): In function zlib_stateful_compress_block': c_zlib.c:(.text+0xd8): undefined reference todeflate'
/opt/lib//libcrypto.a(c_zlib.o): In function bio_zlib_free': c_zlib.c:(.text+0x128): undefined reference toinflateEnd'
c_zlib.c:(.text+0x144): undefined reference to deflateEnd' /opt/lib//libcrypto.a(c_zlib.o): In functionzlib_stateful_finish':
c_zlib.c:(.text+0x194): undefined reference to inflateEnd' c_zlib.c:(.text+0x19c): undefined reference todeflateEnd'
/opt/lib//libcrypto.a(c_zlib.o): In function zlib_stateful_init': c_zlib.c:(.text+0x224): undefined reference toinflateInit_'
c_zlib.c:(.text+0x26c): undefined reference to deflateInit_' /opt/lib//libcrypto.a(c_zlib.o): In functionbio_zlib_ctrl':
c_zlib.c:(.text+0x4a0): undefined reference to deflate' c_zlib.c:(.text+0x56c): undefined reference tozError'
/opt/lib//libcrypto.a(c_zlib.o): In function bio_zlib_write': c_zlib.c:(.text+0x708): undefined reference todeflate'
c_zlib.c:(.text+0x794): undefined reference to zError' c_zlib.c:(.text+0x824): undefined reference todeflateInit_'
/opt/lib//libcrypto.a(c_zlib.o): In function bio_zlib_read': c_zlib.c:(.text+0x900): undefined reference toinflate'
c_zlib.c:(.text+0x954): undefined reference to zError' c_zlib.c:(.text+0x9e0): undefined reference toinflateInit_'
collect2: error: ld returned 1 exit status
Makefile:94: recipe for target 'redsocks2' failed
make: *** [redsocks2] Error 1

Any suggest? Thx!

static compile probleam

I statically compiled htop
I modify
LDFLAGS = "- all-static"

ERROR:

linux/htop-LinuxCRT.o: In function `CRT_handleSIGSEGV':
/mmc/compile/htop-2.0.2/linux/LinuxCRT.c:22: undefined reference to `backtrace'
/mmc/compile/htop-2.0.2/linux/LinuxCRT.c:24: undefined reference to `backtrace_symbols_fd'
collect2: error: ld returned 1 exit status

can you help me? Thanks

compile redsocks2

I compiled redsocks2 with the following warnings, resulting in the compilation interrupt!

cc -fPIC -O3 -std=gnu99 -Wall -DUSE_CRYPTO_OPENSSL   -c -o gen/version.o gen/version.c
cc -fPIC -O3 -std=gnu99 -Wall -DUSE_CRYPTO_OPENSSL -o redsocks2 parser.o main.o redsocks.o log.o direct.o ipcache.o autoproxy.o encrypt.o shadowsocks.o http-connect.o socks4.o socks5.o http-relay.o base.o base64.o md5.o http-auth.o utils.o redudp.o socks5-udp.o shadowsocks-udp.o tcpdns.o gen/version.o  -levent -lssl -lcrypto
/opt/lib/gcc/arm-buildroot-linux-uclibcgnueabi/4.9.2/../../../libcrypto.so: warning: gethostbyname is 
obsolescent, use getnameinfo() instead.

On Mount /mmc compilation errors

Before the partition mounted to the /opt and entware coexist not what problem. I try to mount the /mmc compiler error (if not build up the compiler environment)

I should be how to operate.?My command is mounted:

mount -o bind /mnt/sda1/mmc /mmc

VER:v1.1-RC1

root@unknown:/mmc/build/openvpn-2.3.2# ./configure --prefix=/mmc/openvpn --enable-pam-dlopen
checking for a BSD-compatible install... ./install-sh -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... no
checking build system type... Warning: creating insecure temp directory
./config.guess: unable to guess system type

This script, last modified 2012-02-10, has failed to recognize
the operating system you are using. It is advised that you
download the most up to date version of the config scripts from

  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
and
  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD

If the version you run (./config.guess) is already up to date, please
send the following data and any information you think might be
pertinent to <[email protected]> in order to provide the needed
information to handle your system.

config.guess timestamp = 2012-02-10

uname -m = mips
uname -r = 2.6.22.19
uname -s = Linux
uname -v = #6 Mon Oct 12 14:54:56 CEST 2015

/usr/bin/uname -p =
/bin/uname -X     =

hostinfo               =
/bin/universe          =
/usr/bin/arch -k       =
/bin/arch              =
/usr/bin/oslevel       =
/usr/convex/getsysinfo =

UNAME_MACHINE = mips
UNAME_RELEASE = 2.6.22.19
UNAME_SYSTEM  = Linux
UNAME_VERSION = #6 Mon Oct 12 14:54:56 CEST 2015

Error building ARM

Got an error trying to build latest Tomatoware ARM. Something about CMake complaining that the toolchain's GCC 8.3.0 doesn't support C++11. This seems odd given that C++20 started showing up in GCC 8?
image

Some experimental edits

Just a friendly heads up that I tried out the following with success on my ac3200 ARMv7:

  • lbzip2 - installed/enabled by a configure flag in tar. On my laptop it is blazing fast. I havent done formal tests on the router but the online man pages for tar say they plan to use it by default anyways so couldnt hurt
  • boost - took me a while to get right since their build system is super confusing in terms of what exactly is required for cross compiling. still a bit hacky how I have it. I guess boost looks for user-config.jam, but that it must be in the $PATH somewhere, otherwise it looks like $HOME. I generally try to avoid messing with the path as much as possible so I just echo what its looking for into a file in home.
  • libtins - a handy libray that hooks into libpcap. depends on some boost header files for regex, maybe some others.

All of these were things I installed natively first using your amazing toolchain. After some thought I figured adding the packages to the xcompile process would be much more maintainable for myself in the case of new/changing routers. Boost is fairly often required by other programs/libraries and I think libtins speaks for itself it terms of usefulness on a router. But not sure if those qualify as "core build tools" and only have ARM hardware to test, hence the fork instead of PR, but I can PR if you want. Also tried using the latest builtroot and gcc 7.3 with no immediate issues as far as I can tell. I assume the patch is no longer needed for 7.3.

Also, a HUGE thanks for putting this out there. I just wish I had found it earlier- lots of time wasted on entware. distcc was also new on me and blew my mind a bit. Read through the tomatoware thread on linksysinfo and disagree that this is not a replacement for entware.. Entware takes forever to build and breaks so easily, both when cross compiling and when using stuff it has compiled. They should just give up and work on a distributed version of tomatoware.

mipsel cross-compile fails for gcc

Building commit 30280bc fails for me in Debian 8 (jessie) with the output below.

make[3]: Entering directory '/home/ben/projects/tomatoware/src/gcc/gcc-build/gcc'
mipsel-buildroot-linux-uclibc-g++ -no-pie   -g -O2 -DIN_GCC     -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings   -DHAVE_CONFIG_H -static-libstdc++ -static-libgcc -L/home/ben/projects/tomatoware/mmc/tomatoware/lib -s -Wl,--dynamic-linker=/mmc/tomatoware/lib/ld-uClibc.so.1 -Wl,-rpath,/mmc/tomatoware/lib -Wl,-rpath-link,/home/ben/projects/tomatoware/mmc/tomatoware/lib -o lto1 \
	lto/lto-lang.o lto/lto.o lto/lto-object.o attribs.o lto/lto-partition.o lto/lto-symtab.o libbackend.a main.o libcommon-target.a libcommon.a ../libcpp/libcpp.a ../libdecnumber/libdecnumber.a  -L/home/ben/projects/tomatoware/mmc/tomatoware/lib -L/home/ben/projects/tomatoware/mmc/tomatoware/lib -L/home/ben/projects/tomatoware/mmc/tomatoware/lib -lmpc -lmpfr -lgmp -rdynamic  -L./../zlib -lz libcommon.a ../libcpp/libcpp.a  /home/ben/projects/tomatoware/mmc/tomatoware/lib/libiconv.so -Wl,-rpath -Wl,/home/ben/projects/tomatoware/mmc/tomatoware/lib ../libbacktrace/.libs/libbacktrace.a ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a 
mipsel-buildroot-linux-uclibc-gcc -nostdinc -x c /dev/null -S -o /dev/null -fself-test=../../gcc-7.2.0/gcc/testsuite/selftests
mipsel-buildroot-linux-uclibc-gcc.br_real: error: unrecognized command line option ‘-fself-test=../../gcc-7.2.0/gcc/testsuite/selftests’
Makefile:1933: recipe for target 's-selftest' failed
make[3]: *** [s-selftest] Error 1

distcc ERROR with new toolchain (gcc 9.2.0)

I updated the tomatoware toolchain on my ARM Box (Debian 9) to the newest version yestoday, and when i compile on my routet i got these errors:

distcc[19949] (dcc_r_token_int) ERROR: protocol derailment: expected token "SOUT"
distcc[19949] (dcc_explain_mismatch) ERROR: error context: "DOTO00000000"
distcc[19949] Warning: failed to distribute util/data/packed_rrset.c to 192.168.2.20, running locally instead
distcc[19924] (dcc_r_token_int) ERROR: protocol derailment: expected token "SOUT"
distcc[19924] (dcc_explain_mismatch) ERROR: error context: "DOTO00000000"
distcc[19924] Warning: failed to distribute util/data/msgencode.c to 192.168.2.20, running locally instead
distcc[19917] (dcc_r_token_int) ERROR: protocol derailment: expected token "SOUT"
distcc[19917] (dcc_explain_mismatch) ERROR: error context: "DOTO00000000"
distcc[19917] Warning: failed to distribute services/cache/dns.c to 192.168.2.20, running locally instead
libtool: compile:  distcc arm-linux-gcc -I. -I/mmc/include -I/mmc/include -I/mmc/include -DSRCDIR=. -g -O2 -c services/cache/rrset.c -o rrset.o >/dev/null 2>&1
distcc[19955] (dcc_r_token_int) ERROR: protocol derailment: expected token "SOUT"
distcc[19955] (dcc_explain_mismatch) ERROR: error context: "DOTO00000000"
distcc[19955] Warning: failed to distribute util/as112.c to 192.168.2.20, running locally instead
distcc[19923] (dcc_r_token_int) ERROR: protocol derailment: expected token "SOUT"
distcc[19923] (dcc_explain_mismatch) ERROR: error context: "DOTO00000000"
distcc[19923] Warning: failed to distribute util/data/msgreply.c to 192.168.2.20, running locally instead
libtool: compile:  distcc arm-linux-gcc -I. -I/mmc/include -I/mmc/include -I/mmc/include -DSRCDIR=. -g -O2 -c util/data/dname.c -o dname.o >/dev/null 2>&1
distcc[19952] (dcc_r_token_int) ERROR: protocol derailment: expected token "SOUT"
distcc[19952] (dcc_explain_mismatch) ERROR: error context: "DOTO00000000"
distcc[19952] Warning: failed to distribute util/data/msgparse.c to 192.168.2.20, running locally instead

But fine with the old toolchain in the VMware box (Ubuntu 14.04 x64,GCC 8.2.0)at the same time, and i remember it's fine too on my ARM box before i update.

Debian apt installed distcc is version 3.1,i try compile from the source with the version 3.3 and try again, some error.

Any suggest?

Can not compile GNU M4

Because you do not want the dynamic version of tomatoware m4 comes into the / opt / bin, I try to compile it and then the whole dynamic static compiler! But the dynamic compiler will not pass (T_T)

Tomatoware on DD-WRT

I want use Buffalo WZR-1750dhp for compile work because the router have 512M RAM, and only DD-WRT support 512M RAM for now.

Any source without use automake/autoconf were compiled fine, others did not. When i run make, these error msg show immediately:

Makefile:xxx: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/xxxx/xxxx/xxxx'
Makefile:xxx: recipe for target 'all' failed

I go google and got the same situation post on Open-WRT forum:

https://forum.openwrt.org/viewtopic.php?id=60605

Just remove the trailing '' from the up line of the 'dot_seen=no; ' then 'make' work:

fi; \ dot_seen=no; \

to

fi; dot_seen=no; \

But I need to modify all these Makefile~

Do you have any suggestion? @lancethepants

Folder "docs"

Hello! What is in the folder "docs" distrib arm-soft-jffs?

ARM release version

Hi there,

Wanting to use tomatoware on my Tomato R7000, however it's ARM-based, not MIPS.
Any chance of a pre-compiled ARM version of tomatoware?

Questions about the new version ?

See tomatoware Added support GO compiled script:
Both mipsel and arm support ?
There is, if i want to overwrite the original tomatoware updated version or re- install unzip it ?
thanks

Question about base.sh

#

rm -rf tar zxvf perl-${PERL_VERSION=}

^ is this intended? (the rm -rf and also the = after VERSION?

Also, a general question: what is asterisk used for exactly? I spent some time on their website, but it left me pretty clueless still. Is it just for VoIP or..?

Compile shadowVPN Error !

https://github.com/ravageralpha/ShadowVPN

root@XIAOMI:/mmc/build/ShadowVPN# ./autogen.sh
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force
autom4te: need GNU m4 1.4 or later: /usr/bin/m4
aclocal: error: echo failed with exit status: 1
autoreconf: aclocal failed with exit status: 1

What is the reason ? Lack of relevant libtool? Also suggests GNU M4 version to date! Very strange

v3.0 cmake error

[T][P][netgear:/mmc]$ cmake

/mmc/bin/cmake: symbol '_ZSt28__throw_bad_array_new_lengthv': can't resolve symbol

/mmc/bin/cmake: symbol '_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEv': can't resolve symbol

and newest nightly building have this error too.

had google some place, maybe GCC 11 problem?

why my build output is x86 instead of mipsel?

This maybe a dumb question, but I am not sure if I am using tomatoware correctly:

I downloaded the release file: mipsel-soft-mmc.tgz extract it to /mmc
then: export PATH=/mmc/bin:$PATH so that all the toolchains are from /mmc/bin

After that, I tried to build shadowsocks (I see qemu-mipsel during build). However, the output target files cannot be run on mipsel environment(the router), but they are runnable on the linux x86 machine.

Am I missing something important? Thanks a lot!

static compile shadowsocks-libev with tomatoware-mipsel

https://github.com/shadowsocks/shadowsocks-libev
In the mipsel compiler will not pass , and in arm without any problems.
Translation parameters:

./configure --prefix=/opt/shadowsocks-libev && make

Errors that occur:

../libev/.libs/libev.a(ev.o): In function `epoll_init':
/mnt/sda1/opt/build/shadowsocks-libev/libev/ev_epoll.c:242: undefined reference to `epoll_create1'
collect2: ld returned 1 exit status
Makefile:553: recipe for target 'ss-local' failed
make[2]: *** [ss-local] Error 1
make[2]: Leaving directory '/tmp/mnt/sda1/opt/build/shadowsocks-libev/src'
Makefile:488: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/tmp/mnt/sda1/opt/build/shadowsocks-libev'
Makefile:310: recipe for target 'all' failed
make: *** [all] Error 2

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.