Hello,

I'm using Xymon to monitor all my servers and therefore I compiled the latest xymon client for OpenWrt. I followed the instructions on the wiki: http://wiki.openwrt.org/doc/devel/crosscompile
So here is what I did:


--------------------------
mkdir compile
cd compile
wget http://downloads.sourceforge.net/projec … .10.tar.gz
tar xsf xymon-4.3.10.tar.gz
cd xymon-4.3.10
PATH=$PATH:/home/roemer/dir825/trunk/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2/bin
export $PATH
STAGING_DIR=/home/roemer/dir825/trunk/staging_dir
export $STAGING_DIR
./configure --client --target=mpis-openwrt-linux-uclibc
view Makefile
nano build/Makefile.Linux # see Patchfile
nano build/Makefile.rules # see Patchfile
gcc -o lib/test-endianness lib/test-endianness.c
gcc -o build/merge-sects build/merge-sects.c
gcc -o build/merge-lines build/merge-lines.c
make
sudo make install
scp -r <InstallDir>/client root@OpenWrt:/tmp
--------------------------

Patch build/Makefile.Linux
--------------------------
--- xymon-4.3.10/build/Makefile.Linux   2012-07-23 13:29:13.000000000 +0200
+++ xymon-4.3.10-openwrt/build/Makefile.Linux   2012-08-28 16:30:27.949076752 +0200
@@ -6,7 +6,8 @@
NETLIBS =

# Compile flags for normal build
-CC = gcc
+CC = mips-openwrt-linux-uclibc-gcc
+LD = mips-openwrt-linux-uclibc-ld
GCCVER := $(shell gcc -dumpversion|cut -d. -f1)
ifeq ($(GCCVER),4)
    CFLAGS = -g -O2 -Wall -Wno-unused -Wno-pointer-sign -D_REENTRANT $(LFSDEF) $(OSDEF)
--------------------------


Patch build/Makefile.rules
--------------------------
--- xymon-4.3.10/build/Makefile.rules   2012-08-02 13:20:21.000000000 +0200
+++ xymon-4.3.10-openwrt/build/Makefile.rules   2012-08-28 16:30:27.953076702 +0200
@@ -9,6 +9,11 @@
#####################

CFLAGS += -I$(BUILDTOPDIR)/include
+CFLAGS += -I/home/oliver/dir825/trunk/staging_dir/target-mips_r2_uClibc-0.9.33.2/usr/include
+CFLAGS += -I/home/oliver/dir825/trunk/staging_dir/toolchain-mips_r2_uClibc-0.9.33.2/usr/include
+
+LDFLAGS += -L/home/oliver/dir825/trunk/staging_dir/target-mips_r2_uClibc-0.9.33.2/usr/lib
+LDFLAGS += -L/home/oliver/dir825/trunk/staging_dir/toolchain-mips_r2_uClibc-0.9.33.2/usr/lib

ifeq ($(CLIENTONLY),yes)
        BUILDTARGETS = client
--------------------------

Now the actual Problem: As you can see i precompiled
lib/test-endianness
build/merge-sects
build/merge-lines
with gcc. If I'm not doing this, the following output occurs:

--------------------------
make
MAKE="make" CC="mips-openwrt-linux-uclibc-gcc" CFLAGS="-g -O2 -Wall -Wno-unused -Wno-pointer-sign -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DLINUX -I`pwd`/include -I/home/roemer/dir825/trunk/staging_dir/target-mips_r2_uClibc-0.9.33.2/usr/include -I/home/roemer/dir825/trunk/staging_dir/toolchain-mips_r2_uClibc-0.9.33.2/usr/include -DCLIENTONLY=1" LDFLAGS="-L/home/roemer/dir825/trunk/staging_dir/target-mips_r2_uClibc-0.9.33.2/usr/lib -L/home/roemer/dir825/trunk/staging_dir/toolchain-mips_r2_uClibc-0.9.33.2/usr/lib" `pwd`/build/genconfig.sh
Checking for socklen_t
Checking for snprintf
Checking for vsnprintf
Checking for rpc/rpcent.h
Checking for sys/select.h
Checking for u_int32_t typedef
Checking for PATH_MAX definition
./build/testfile: 1: Syntax error: "(" unexpected
Checking for SHUT_RD/WR/RDWR definitions
./build/testfile: 1: Syntax error: "(" unexpected
Checking for strtoll()
config.h created
CC="mips-openwrt-linux-uclibc-gcc" CFLAGS="-g -O2 -Wall -Wno-unused -Wno-pointer-sign -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DLINUX -I`pwd`/include -I/home/roemer/dir825/trunk/staging_dir/target-mips_r2_uClibc-0.9.33.2/usr/include -I/home/roemer/dir825/trunk/staging_dir/toolchain-mips_r2_uClibc-0.9.33.2/usr/include -DCLIENTONLY=1" LDFLAGS="-L/home/roemer/dir825/trunk/staging_dir/target-mips_r2_uClibc-0.9.33.2/usr/lib -L/home/roemer/dir825/trunk/staging_dir/toolchain-mips_r2_uClibc-0.9.33.2/usr/lib" OSDEF="-DLINUX" RPATHOPT="-Wl,--rpath," PCREINCDIR="" ZLIBINCDIR="" SSLFLAGS="" SSLINCDIR="" SSLLIBS="" NETLIBS="" LIBRTDEF="-lrt" XYMONTOPDIR="/usb/usr/local/hobbit" XYMONLOGDIR="" XYMONHOSTNAME="" XYMONHOSTIP="78.111.78.35" XYMONHOSTOS="" LOCALCLIENT="no" make -C lib client
make[1]: Betrete Verzeichnis '/tmp/compile/xymon-4.3.10-openwrt/lib'
mips-openwrt-linux-uclibc-gcc -g -O2 -Wall -Wno-unused -Wno-pointer-sign -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DLINUX -I/tmp/compile/xymon-4.3.10-openwrt/include -I/home/roemer/dir825/trunk/staging_dir/target-mips_r2_uClibc-0.9.33.2/usr/include -I/home/roemer/dir825/trunk/staging_dir/toolchain-mips_r2_uClibc-0.9.33.2/usr/include -DCLIENTONLY=1 -I../include  -o test-endianness test-endianness.c
mips-openwrt-linux-uclibc-gcc -g -O2 -Wall -Wno-unused -Wno-pointer-sign -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DLINUX -I/tmp/compile/xymon-4.3.10-openwrt/include -I/home/roemer/dir825/trunk/staging_dir/target-mips_r2_uClibc-0.9.33.2/usr/include -I/home/roemer/dir825/trunk/staging_dir/toolchain-mips_r2_uClibc-0.9.33.2/usr/include -DCLIENTONLY=1 -I../include    -c -o osdefs.o osdefs.c
mips-openwrt-linux-uclibc-gcc -g -O2 -Wall -Wno-unused -Wno-pointer-sign -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DLINUX -I/tmp/compile/xymon-4.3.10-openwrt/include -I/home/roemer/dir825/trunk/staging_dir/target-mips_r2_uClibc-0.9.33.2/usr/include -I/home/roemer/dir825/trunk/staging_dir/toolchain-mips_r2_uClibc-0.9.33.2/usr/include -DCLIENTONLY=1 -I../include    -c -o cgiurls.o cgiurls.c
mips-openwrt-linux-uclibc-gcc -g -O2 -Wall -Wno-unused -Wno-pointer-sign -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DLINUX -I/tmp/compile/xymon-4.3.10-openwrt/include -I/home/roemer/dir825/trunk/staging_dir/target-mips_r2_uClibc-0.9.33.2/usr/include -I/home/roemer/dir825/trunk/staging_dir/toolchain-mips_r2_uClibc-0.9.33.2/usr/include -DCLIENTONLY=1 -I../include  -DCLIENTONLY -c -o color-client.o color.c
mips-openwrt-linux-uclibc-gcc -g -O2 -Wall -Wno-unused -Wno-pointer-sign -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DLINUX -I/tmp/compile/xymon-4.3.10-openwrt/include -I/home/roemer/dir825/trunk/staging_dir/target-mips_r2_uClibc-0.9.33.2/usr/include -I/home/roemer/dir825/trunk/staging_dir/toolchain-mips_r2_uClibc-0.9.33.2/usr/include -DCLIENTONLY=1 -I../include    -c -o crondate.o crondate.c
mips-openwrt-linux-uclibc-gcc -g -O2 -Wall -Wno-unused -Wno-pointer-sign -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DLINUX -I/tmp/compile/xymon-4.3.10-openwrt/include -I/home/roemer/dir825/trunk/staging_dir/target-mips_r2_uClibc-0.9.33.2/usr/include -I/home/roemer/dir825/trunk/staging_dir/toolchain-mips_r2_uClibc-0.9.33.2/usr/include -DCLIENTONLY=1 -I../include    -c -o digest.o digest.c
mips-openwrt-linux-uclibc-gcc -g -O2 -Wall -Wno-unused -Wno-pointer-sign -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DLINUX -I/tmp/compile/xymon-4.3.10-openwrt/include -I/home/roemer/dir825/trunk/staging_dir/target-mips_r2_uClibc-0.9.33.2/usr/include -I/home/roemer/dir825/trunk/staging_dir/toolchain-mips_r2_uClibc-0.9.33.2/usr/include -DCLIENTONLY=1 -I../include    -c -o encoding.o encoding.c
mips-openwrt-linux-uclibc-gcc -g -O2 -Wall -Wno-unused -Wno-pointer-sign -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DLINUX -I/tmp/compile/xymon-4.3.10-openwrt/include -I/home/roemer/dir825/trunk/staging_dir/target-mips_r2_uClibc-0.9.33.2/usr/include -I/home/roemer/dir825/trunk/staging_dir/toolchain-mips_r2_uClibc-0.9.33.2/usr/include -DCLIENTONLY=1 -I../include  -DXYMONTOPDIR=\"/usb/usr/local/hobbit\" -DXYMONLOGDIR=\"\" -DXYMONHOSTNAME=\"\" -DXYMONHOSTIP=\"78.111.78.35\" -DXYMONHOSTOS=\"\" -DBUILD_HOME=\"/usb/usr/local/hobbit/client\" -c -o environ-client.o environ.c
mips-openwrt-linux-uclibc-gcc -g -O2 -Wall -Wno-unused -Wno-pointer-sign -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DLINUX -I/tmp/compile/xymon-4.3.10-openwrt/include -I/home/roemer/dir825/trunk/staging_dir/target-mips_r2_uClibc-0.9.33.2/usr/include -I/home/roemer/dir825/trunk/staging_dir/toolchain-mips_r2_uClibc-0.9.33.2/usr/include -DCLIENTONLY=1 -I../include    -c -o errormsg.o errormsg.c
mips-openwrt-linux-uclibc-gcc -g -O2 -Wall -Wno-unused -Wno-pointer-sign -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DLINUX -I/tmp/compile/xymon-4.3.10-openwrt/include -I/home/roemer/dir825/trunk/staging_dir/target-mips_r2_uClibc-0.9.33.2/usr/include -I/home/roemer/dir825/trunk/staging_dir/toolchain-mips_r2_uClibc-0.9.33.2/usr/include -DCLIENTONLY=1 -I../include    -c -o holidays.o holidays.c
mips-openwrt-linux-uclibc-gcc -g -O2 -Wall -Wno-unused -Wno-pointer-sign -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DLINUX -I/tmp/compile/xymon-4.3.10-openwrt/include -I/home/roemer/dir825/trunk/staging_dir/target-mips_r2_uClibc-0.9.33.2/usr/include -I/home/roemer/dir825/trunk/staging_dir/toolchain-mips_r2_uClibc-0.9.33.2/usr/include -DCLIENTONLY=1 -I../include    -c -o ipaccess.o ipaccess.c
mips-openwrt-linux-uclibc-gcc -g -O2 -Wall -Wno-unused -Wno-pointer-sign -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DLINUX -I/tmp/compile/xymon-4.3.10-openwrt/include -I/home/roemer/dir825/trunk/staging_dir/target-mips_r2_uClibc-0.9.33.2/usr/include -I/home/roemer/dir825/trunk/staging_dir/toolchain-mips_r2_uClibc-0.9.33.2/usr/include -DCLIENTONLY=1 -I../include    -c -o md5.o md5.c
mips-openwrt-linux-uclibc-gcc -g -O2 -Wall -Wno-unused -Wno-pointer-sign -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DLINUX -I/tmp/compile/xymon-4.3.10-openwrt/include -I/home/roemer/dir825/trunk/staging_dir/target-mips_r2_uClibc-0.9.33.2/usr/include -I/home/roemer/dir825/trunk/staging_dir/toolchain-mips_r2_uClibc-0.9.33.2/usr/include -DCLIENTONLY=1 -I../include    -c -o memory.o memory.c
mips-openwrt-linux-uclibc-gcc -g -O2 -Wall -Wno-unused -Wno-pointer-sign -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DLINUX -I/tmp/compile/xymon-4.3.10-openwrt/include -I/home/roemer/dir825/trunk/staging_dir/target-mips_r2_uClibc-0.9.33.2/usr/include -I/home/roemer/dir825/trunk/staging_dir/toolchain-mips_r2_uClibc-0.9.33.2/usr/include -DCLIENTONLY=1 -I../include    -c -o misc.o misc.c
mips-openwrt-linux-uclibc-gcc -g -O2 -Wall -Wno-unused -Wno-pointer-sign -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DLINUX -I/tmp/compile/xymon-4.3.10-openwrt/include -I/home/roemer/dir825/trunk/staging_dir/target-mips_r2_uClibc-0.9.33.2/usr/include -I/home/roemer/dir825/trunk/staging_dir/toolchain-mips_r2_uClibc-0.9.33.2/usr/include -DCLIENTONLY=1 -I../include    -c -o msort.o msort.c
mips-openwrt-linux-uclibc-gcc -g -O2 -Wall -Wno-unused -Wno-pointer-sign -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DLINUX -I/tmp/compile/xymon-4.3.10-openwrt/include -I/home/roemer/dir825/trunk/staging_dir/target-mips_r2_uClibc-0.9.33.2/usr/include -I/home/roemer/dir825/trunk/staging_dir/toolchain-mips_r2_uClibc-0.9.33.2/usr/include -DCLIENTONLY=1 -I../include  `./test-endianness` -c -o rmd160c.o rmd160c.c
./test-endianness: 9: 4?p4: not found
./test-endianness: 9: @: not found
./test-endianness: 9: @d@: not found
./test-endianness: 9: ?
                       pA: not found
./test-endianness: 9: A: not found
./test-endianness: 9: @@8ppp@p: not found
./test-endianness: 9: pp@P0p2A: not found
./test-endianness: 9: : not found
: not foundnness: 9: 
./test-endianness: 9: P?A: not found
./test-endianness: 9: ??*A?0??ns.@?: not found
./test-endianness: 9: ELF@@dt?Q/lib/ld-uClibc.so.0??A?0d
?@                                                                   @?
     : not found
./test-endianness: 10: ??A: not found
./test-endianness: 11: L???4?
                                 ?A: not found
./test-endianness: 18: ?A: not found
./test-endianness: 18: L??:A: not found
./test-endianness: 18: @???A: not found
./test-endianness: 18: ???P: not found
./test-endianness: 18: L??libgcc_s.so.1_DYNAMIC_LINKING__RLD_MAP_gp_init_fini_GLOBAL_OFFSET_TABLE__Jv_RegisterClasseslibc.so.0putsfflushfprintf__uClibc_mainstrcmpstderrstdout_ftext_fdata_edata__bss_start_fbss_endA: not found
./test-endianness: 18: P~A: not found
./test-endianness: 18: ~A: not found
./test-endianness: 19: A: not found
./test-endianness: 20: A: not found
./test-endianness: 21: $A: not found
./test-endianness: 38: Syntax error: "(" unexpected (expecting ")")
mips-openwrt-linux-uclibc-gcc -g -O2 -Wall -Wno-unused -Wno-pointer-sign -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DLINUX -I/tmp/compile/xymon-4.3.10-openwrt/include -I/home/roemer/dir825/trunk/staging_dir/target-mips_r2_uClibc-0.9.33.2/usr/include -I/home/roemer/dir825/trunk/staging_dir/toolchain-mips_r2_uClibc-0.9.33.2/usr/include -DCLIENTONLY=1 -I../include  `./test-endianness` -c -o sha1.o sha1.c
./test-endianness: 9: 4?p4: not found
./test-endianness: 9: @: not found
./test-endianness: 9: @d@: not found
./test-endianness: 9: ?
                       pA: not found
./test-endianness: 9: A: not found
./test-endianness: 9: @@8ppp@p: not found
./test-endianness: 9: pp@P0p2A: not found
./test-endianness: 9: : not found
: not foundnness: 9: 
./test-endianness: 9: P?A: not found
./test-endianness: 9: ??*A?0??ns.@?: not found
./test-endianness: 9: ELF@@dt?Q/lib/ld-uClibc.so.0??A?0d
?@                                                                   @?
     : not found
./test-endianness: 10: ??A: not found
./test-endianness: 11: L???4?
                                 ?A: not found
./test-endianness: 18: ?A: not found
./test-endianness: 18: L??:A: not found
./test-endianness: 18: @???A: not found
./test-endianness: 18: ???P: not found
./test-endianness: 18: L??libgcc_s.so.1_DYNAMIC_LINKING__RLD_MAP_gp_init_fini_GLOBAL_OFFSET_TABLE__Jv_RegisterClasseslibc.so.0putsfflushfprintf__uClibc_mainstrcmpstderrstdout_ftext_fdata_edata__bss_start_fbss_endA: not found
./test-endianness: 18: P~A: not found
./test-endianness: 18: ~A: not found
./test-endianness: 19: A: not found
./test-endianness: 20: A: not found
./test-endianness: 21: $A: not found
./test-endianness: 38: Syntax error: "(" unexpected (expecting ")")
sha1.c:38:2: error: #error "Endianness is UNDEFINED"
make[1]: *** [sha1.o] Fehler 1
make[1]: Verlasse Verzeichnis '/tmp/compile/xymon-4.3.10-openwrt/lib'
make: *** [lib-client] Fehler 2
--------------------------

I've tried compiling them this way, but the error occurs:
--------------------------
mips-openwrt-linux-uclibc-gcc test-endianness.c
./a.out
-bash: ./a.out: Could not execute this file.
--------------------------

After this compiling successfully finished, but "make install" failed:
--------------------------
...
cp -fp xymonlaunch logfetch clientupdate orcaxymon msgcache xymonclient*.sh xymon xymoncmd xymongrep xymoncfg xymondigest  /usb/usr/local/hobbit/client/bin/
chmod ugo+x /usb/usr/local/hobbit/client/bin/*
../build/merge-sects clientlaunch.cfg /usb/usr/local/hobbit/client/etc/clientlaunch.cfg
../build/merge-sects: 1: Syntax error: "(" unexpected
make[1]: *** [install] Fehler 2
make[1]: Verlasse Verzeichnis '/tmp/compile/xymon-4.3.10-openwrt/client'
make: *** [install-client] Fehler 2
--------------------------

This is why I precompiled the other two files mentioned above, too.

The ongoing error is the syntax error, so I was wondering if someone of you could tell me whats wrong with this code: (test-endianness.c) There must be a little change in the syntax so that the compiler delivered with openwrt could correctly compile it.
--------------------------
/*----------------------------------------------------------------------------*/
/* Xymon monitor library.                                                     */
/*                                                                            */
/* Utility program to define endian-ness of the target system.                */
/*                                                                            */
/* Copyright (C) 2006-2011 Henrik Storner <henrik@storner.dk>                 */
/*                                                                            */
/* This program is released under the GNU General Public License (GPL),       */
/* version 2. See the file "COPYING" for details.                             */
/*                                                                            */
/*----------------------------------------------------------------------------*/

static char rcsid[] = "$Id: test-endianness.c 6712 2011-07-31 21:01:52Z storner $";

#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main(int argc, char **argv)
{
        unsigned int c;
        unsigned char cbuf[sizeof(c)];
        int i;
        int outform = 1;

        if ((argc > 1) && (strcmp(argv[1], "--configh") == 0)) outform = 0;

        for (i=0; (i < sizeof(c)); i++) {
                cbuf[i] = (i % 2);
        }

        memcpy(&c, cbuf, sizeof(c));

        if (c == 65537) {
                /* Big endian */
                if (outform == 0)
                        printf("#ifndef XYMON_BIG_ENDIAN\n#define XYMON_BIG_ENDIAN\n#endif\n");
                else
                        printf(" -DXYMON_BIG_ENDIAN");
        }
        else if (c == 16777472) {
                /* Little endian */
                if (outform == 0)
                        printf("#ifndef XYMON_LITTLE_ENDIAN\n#define XYMON_LITTLE_ENDIAN\n#endif\n");
                else
                        printf(" -DXYMON_LITTLE_ENDIAN");
        }
        else {
                       fprintf(stderr, "UNKNOWN ENDIANNESS! testvalue is %u\n", c);
        }

        fflush(stdout);
        return 0;
}
--------------------------

Thanks for your help :-)