OpenWrt Forum Archive

Topic: mksh Compilation error >> whether compile-time assertions pass... no

The content of this topic has been archived on 14 Mar 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

==> if to use persistent history... no (cached)
... whether compile-time assertions pass
$ mips-openwrt-linux-uclibc-gcc -Os -pipe -mips32r2 -mtune=mips32r2 -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -msoft-float -fno-strict-aliasing -fwrapv -flto=jobserver -std=gnu99 -Wall -fno-inline -Wno-overflow -I. -DMKSH_SMALL=1 -DMKSH_ASSUME_UTF8=0 -D_GNU_SOURCE -DSETUID_CAN_FAIL_WITH_EAGAIN -DHAVE_ATTRIBUTE_BOUNDED=0 -DHAVE_ATTRIBUTE_FORMAT=1 -DHAVE_ATTRIBUTE_NONNULL=1 -DHAVE_ATTRIBUTE_NORETURN=1 -DHAVE_ATTRIBUTE_UNUSED=1 -DHAVE_ATTRIBUTE_USED=1 -DHAVE_SYS_BSDTYPES_H=0 -DHAVE_SYS_FILE_H=1 -DHAVE_SYS_MKDEV_H=0 -DHAVE_SYS_MMAN_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_SELECT_H=1 -DHAVE_SYS_SYSMACROS_H=1 -DHAVE_BSTRING_H=0 -DHAVE_GRP_H=1 -DHAVE_LIBGEN_H=1 -DHAVE_LIBUTIL_H=0 -DHAVE_PATHS_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_ULIMIT_H=1 -DHAVE_VALUES_H=1 -D_FILE_OFFSET_BITS=64 -DHAVE_CAN_INTTYPES=1 -DHAVE_CAN_UCBINTS=1 -DHAVE_CAN_INT8TYPE=1 -DHAVE_CAN_UCBINT8=1 -DHAVE_RLIM_T=1 -DHAVE_SIG_T=1 -DHAVE_SYS_SIGNAME=0 -DHAVE_SYS_SIGLIST=0 -DHAVE_STRSIGNAL=1 -DHAVE_GETRUSAGE=1 -DHAVE_KILLPG=1 -DHAVE_MKNOD=0 -DHAVE_MKSTEMP=1 -DHAVE_NICE=0 -DHAVE_REVOKE=0 -DHAVE_SETLOCALE_CTYPE=0 -DHAVE_LANGINFO_CODESET=0 -DHAVE_SELECT=1 -DHAVE_SETRESUGID=1 -DHAVE_SETGROUPS=1 -DHAVE_STRCASESTR=1 -DHAVE_STRLCPY=1 -DHAVE_FLOCK_DECL=0 -DHAVE_REVOKE_DECL=1 -DHAVE_SYS_SIGLIST_DECL=1 -DHAVE_PERSISTENT_HISTORY=0 -L/var/data/hc-wrt/trunk/staging_dir/target-mips_r2_uClibc-0.9.33.2/usr/lib -L/var/data/hc-wrt/trunk/staging_dir/target-mips_r2_uClibc-0.9.33.2/lib -L/var/data/hc-wrt/trunk/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2/usr/lib -L/var/data/hc-wrt/trunk/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2/lib -fuse-linker-plugin -Wno-error conftest.c  || for _f in ${tcfn}*; do test x"${_f}" = x"mksh.1" || rm -f "${_f}"; done
] conftest.c:22:1: error: variably modified 'ari_sign_32_bit_and_wrap' at file scope
==> whether compile-time assertions pass... no
make[3]: Leaving directory `/var/data/hc-wrt/trunk/feeds/packages/utils/mksh'



2217 blocks
make[3]: *** [/var/data/hc-wrt/trunk/build_dir/target-mips_r2_uClibc-0.9.33.2/mksh/.built] Error 1
make[2]: *** [package/feeds/packages/mksh/compile] Error 2
make[1]: *** [/var/data/hc-wrt/trunk/staging_dir/target-mips_r2_uClibc-0.9.33.2/stamp/.package_compile] Error 2
make: *** [world] Error 2

And now we're supposed to waste our time guessing what you want?
If you want other people to answer you then at least put in some minimal effort to write a comprehendable question in plain english.

Hi, Guys!

I luckily found that topic, because I have the same issue compiling OpenWRT from trunk.

The trunk revision I checked out is 33969.
I applied the first three patches from George Kashperko (http://www.znau.edu.ua/temp/asus-rt-n16 … README.txt) for ASUS RT-N16 support.

The build machine is a Ubuntu 10.04 VM on a Mac OS X (10.8.2) host OS.
I installed the "packages", "xwrt" and "luci" feed, although I think I could have had disabled the xwrt feed, because I will use luci as web interface.

The compiling endet at the exact same point it has ended for cj1324.

Is there any way to get more information why this behavior comes up? Are there any "make logs" (other than running make with V=99)?

My next try is to disable xwrt and try to make it again… I will report…

Okay… So, I removed the whole trunk directory and did the following steps:

- checkout of trunk at revision 33969 (because George Kashperko's RT-N16 patches rely on that rev.)
- deactivating xwrt feed (adding leading # to feeds.conf.default)
- installed both existing feeds (packages and luci)
- applied all three patches from George (000, 001, 002 - in that order)
- "make prereq" to ensure that all binaries that are needed are present
- "make download" to download any source needed before building
- in "make menuconfig" I just tagged those packages I really (I mean REALLY) need on my router (openvpn, tcpdump, usb stuff, luci, etc.)
- "make V=99"

It successfully build the packages and the image.

That behavior where it stopes building everything (like in the first post) comes up when I tag the option "Global build settings"->"Select all packages by default"...

Somehow I can't build "everything" for the RT-N16...

Is there any log or hint I can investigate to know which package raises that "error"?

(Last edited by RonaldDuck on 30 Oct 2012, 14:52)

Use "make V=99 IGNORE_ERRORS=m" when doing a build with all packages. There'll always be broken packages.

Thank you jow!

But, how do I get notified which package has been broken?
Or is it just try'n'error if the build has finished and a package I need isn't there?

The above command will abort if a builtin package is broken, but it will skip ones which are broken and marked as <M>.
You can pass BUILD_LOG=1 to make a log for each make target in logs/.

Thanks for your hints!

I think those hints will help the topic creator as well smile

Next approach: building everything (that's possible *haha*)

The discussion might have continued from here.