GCW Zero
build buildroot
參考資訊:
1. issue6
2. 82983170
3. galcore_headers
4. patch-src-objects
5. 16ee0252305fbd4f40ea39c3c4421dc7f103f8a0
Debian 9 x64:
$ sudo apt-get install bison flex gettext texinfo wget cpio python unzip mercurial subversion libncurses5-dev libc6-dev-i386 bzr $ git clone git://github.com/gcwnow/buildroot.git $ cd buildroot $ wget https://w1.fi/releases/hostapd-2.8.tar.gz dl/hostapd-0.8_rtw_r7475.20130812.tar.gz $ make gcw0_defconfig $ make cfns.gperf:101:1: error: ‘const char* libc_name_p(const char*, unsigned int)’ redeclared inline with ‘gnu_inline’ attribute $ vim output/build/host-gcc-final-4.9.1/gcc/cp/cfns.h +55 //__inline $ make In file included from ../ncurses/curses.priv.h:283:0, from ../ncurses/lib_gen.c:19: _9246.c:835:15: error: expected ‘)’ before ‘int’ ../include/curses.h:1594:56: note: in definition of macro ‘mouse_trafo’ #define mouse_trafo(y,x,to_screen) wmouse_trafo(stdscr,y,x,to_screen) $ vim output/build/host-ncurses-5.9/ncurses/base/MKlib_gen.sh +439 cat >$ED1 <<EOF s/ / /g s/^ // s/ $// s/P_NCURSES_BOOL/NCURSES_BOOL/g EOF # A patch discussed here: # https://gcc.gnu.org/ml/gcc-patches/2014-06/msg02185.html # introduces spurious #line markers. Work around that by ignoring the system's # attempt to define "bool" and using our own symbol here. sed -e 's/bool/P_NCURSES_BOOL/g' $TMP > $ED2 cat $ED2 >$TMP $preprocessor $TMP 2>/dev/null \ | sed -f $ED1 \ | $AWK -f $AW2 \ | sed -f $ED3 \ | sed \ $ make gdate.c:2497:7: error: format not a string literal, format string not checked [-Werror=format-nonliteral] tmplen = strftime (tmpbuf, tmpbufsize, locale_format, &tm); $ vim output/build/host-libglib2-2.38.2/glib/Makefile +621 CFLAGS = -O2 -Ioutput/host/usr/include -Wno-format-nonliteral $ make CMake Error at CMakeLists.txt:1 (cmake_minimum_required): CMake 3.1.0 or higher is required. You are running version 2.8.12.2 $ rm -rf output/build/host-cmake-2.8.12.2 $ rm package/cmake/cmake-0001-FindQt4-do-not-prepend-CMake-root-path-when-searchin.patch $ vim package/cmake/cmake.mk CMAKE_VERSION_MAJOR = 3.1 CMAKE_VERSION = $(CMAKE_VERSION_MAJOR).0 $ vim package/etna_viv/etna_viv.mk 22: $(MAKE) -C $(@D)/attic \ 32: cp $(@D)/attic/etnaviv/libetnaviv.a $(STAGING_DIR)/usr/lib 34: cp $(@D)/attic/etnaviv/*.h $(STAGING_DIR)/usr/include/etnaviv $ make etna.c:34:20: fatal error: gc_abi.h: No such file or directory #include "gc_abi.h" $ vim output/build/etna_viv-master/attic/Makefile.inc 1: ifndef GCABI 2: #$(error GCABI is undefined. Consult the README.md file to set it according to your kernel) 3: endif 12: GCC_CFLAGS = -D_POSIX_C_SOURCE=200809 -D_GNU_SOURCE -I../../src $ git clone https://github.com/etnaviv/galcore_headers $ cp -a galcore_headers/include_v4/* output/build/etna_viv-master/attic $ rm -rf galcore_headers $ vim output/build/etna_viv-master/attic/driver/etna_rasterizer.h +30 #define VIVS_PA_SYSTEM_MODE_UNK0 0x00000001 #define VIVS_PA_SYSTEM_MODE_UNK4 0x00000010 $ make etna_internal.h:29:31: fatal error: etnaviv/state.xml.h: No such file or directory #include <etnaviv/state.xml.h> $ vim output/build/mesa3d-etna_viv-pre_rebase_2014_09/src/gallium/drivers/etna/Makefile +206 CFLAGS = -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -O2 -Wall -std=c99 -Werror=implicit-function-declaration -Werror=missing-prototypes -fno-strict-aliasing -fno-builtin-memcmp -Ixxx/output/build/etna_viv-master/src $ vim output/build/mesa3d-etna_viv-pre_rebase_2014_09/src/gallium/winsys/etna/drm/Makefile +201 CFLAGS = -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -O2 -Wall -std=c99 -Werror=implicit-function-declaration -Werror=missing-prototypes -fno-strict-aliasing -fno-builtin-memcmp -Ixxx/output/build/etna_viv-master/src $ vim output/build/mesa3d-etna_viv-pre_rebase_2014_09/src/gallium/winsys/etna/fbdev/Makefile +201 CFLAGS = -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -pipe -O2 -Wall -std=c99 -Werror=implicit-function-declaration -Werror=missing-prototypes -fno-strict-aliasing -fno-builtin-memcmp -Ixxx/output/build/etna_viv-master/src $ make etna_rasterizer.c:61:66: error: 'VIVS_PA_SYSTEM_MODE_UNK4' undeclared (first use in this function) (rs->half_pixel_center ? (VIVS_PA_SYSTEM_MODE_UNK0 | VIVS_PA_SYSTEM_MODE_UNK4) : 0); $ vim output/build/mesa3d-etna_viv-pre_rebase_2014_09/src/gallium/drivers/etna/etna_rasterizer.h +30 #define VIVS_PA_SYSTEM_MODE_UNK0 0x00000001 #define VIVS_PA_SYSTEM_MODE_UNK4 0x00000010 $ vim output/build/mesa3d-etna_viv-pre_rebase_2014_09/src/gallium/drivers/etna/etna_zsa.h +30 #define VIVS_PE_STENCIL_CONFIG 0x0000141c #define VIVS_PE_STENCIL_CONFIG_MODE__MASK 0x00000003 #define VIVS_PE_STENCIL_CONFIG_MODE__SHIFT 0 #define VIVS_PE_STENCIL_CONFIG_MODE_DISABLED 0x00000000 #define VIVS_PE_STENCIL_CONFIG_MODE_ONE_SIDED 0x00000001 #define VIVS_PE_STENCIL_CONFIG_MODE_TWO_SIDED 0x00000002 #define VIVS_PE_STENCIL_CONFIG_MODE_MASK 0x00000010 #define VIVS_PE_STENCIL_CONFIG_REF_FRONT_MASK 0x00000020 #define VIVS_PE_STENCIL_CONFIG_MASK_FRONT_MASK 0x00000040 #define VIVS_PE_STENCIL_CONFIG_WRITE_MASK_MASK 0x00000080 #define VIVS_PE_STENCIL_CONFIG_REF_FRONT__MASK 0x0000ff00 #define VIVS_PE_STENCIL_CONFIG_REF_FRONT__SHIFT 8 #define VIVS_PE_STENCIL_CONFIG_REF_FRONT(x) (((x) << VIVS_PE_STENCIL_CONFIG_REF_FRONT__SHIFT) & VIVS_PE_STENCIL_CONFIG_REF_FRONT__MASK) #define VIVS_PE_STENCIL_CONFIG_MASK_FRONT__MASK 0x00ff0000 #define VIVS_PE_STENCIL_CONFIG_MASK_FRONT__SHIFT 16 #define VIVS_PE_STENCIL_CONFIG_MASK_FRONT(x) (((x) << VIVS_PE_STENCIL_CONFIG_MASK_FRONT__SHIFT) & VIVS_PE_STENCIL_CONFIG_MASK_FRONT__MASK) #define VIVS_PE_STENCIL_CONFIG_WRITE_MASK__MASK 0xff000000 #define VIVS_PE_STENCIL_CONFIG_WRITE_MASK__SHIFT 24 #define VIVS_PE_STENCIL_CONFIG_WRITE_MASK(x) (((x) << VIVS_PE_STENCIL_CONFIG_WRITE_MASK__SHIFT) & VIVS_PE_STENCIL_CONFIG_WRITE_MASK__MASK) $ make output/build/host-mono-3.10.0/mono/mini/mini.c:2642: undefined reference to mono_jit_tls $ vim output/build/host-mono-3.10.0/mono/metadata/sgen-alloc.c +97 static __thread char **tlab_next_addr MONO_ATTR_USED; $ vim output/build/host-mono-3.10.0/mono/utils/mono-compiler.h +16 #ifdef __GNUC__ #define MONO_ATTR_USED __attribute__ ((used)) #else #define MONO_ATTR_USED #endif #define MONO_FAST_TLS_DECLARE(x) static __thread gpointer x MONO_TLS_FAST MONO_ATTR_USED; $ make ../deps/v8/src/objects.h:5188:44: error: left operand of shift expression ‘(-1 << 3)’ is negative [-fpermissive] static const int kElementsKindMask = (-1 << kElementsKindShift) & ../deps/v8/src/objects.h:7376:39: warning: left shift of negative value [-Wshift-negative-value] (~kMaxCachedArrayIndexLength << kArrayIndexHashLengthShift) | ../deps/v8/src/objects.h:7376:36: error: left operand of shift expression ‘(-8 << 26)’ is negative [-fpermissive] (~kMaxCachedArrayIndexLength << kArrayIndexHashLengthShift) | $ vim output/build/host-nodejs-0.10.12/deps/v8/src/objects.h +5188 static const int kElementsKindMask = -(1 << kElementsKindShift) & $ vim output/build/host-nodejs-0.10.12/deps/v8/src/objects.h +7376 (~static_cast<unsigned>(kMaxCachedArrayIndexLength) << kArrayIndexHashLengthShift) | $ make ../deps/v8/src/liveedit.cc:205:41: error: left operand of shift expression ‘(-1 << 2)’ is negative [-fpermissive] static const int kEmptyCellValue = -1 << kDirectionSizeBits; $ vim output/build/host-nodejs-0.10.12/deps/v8/src/liveedit.cc +205 static const int kEmptyCellValue = -(1 << kDirectionSizeBits); $ make checking whether your compiler passes the ACC conformance test... FAILED $ vim output/build/host-lzo-2.06/src/miniacc.h 755 #elif defined(__amd64__) || defined(__x86_64__) || defined(_M_AMD64) 756 # define ACC_ARCH_AMD64 1 757 # define ACC_INFO_ARCH "amd64" 758 # if defined(__ILP32__) 759 # define ACC_ARCH_AMD64_X32 1 760 # endif 761 #elif defined(__thumb__) || (defined(_M_ARM) && defined(_M_THUMB)) 4473 #if defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0150) 4474 #elif 1 && (ACC_CC_SUNPROC) && !defined(ACCCHK_CFG_PEDANTIC) 4475 #else 4476 ACCCHK_ASSERT((int)(1u << (8*SIZEOF_INT-1)) < 0) 4477 #endif 4478 ACCCHK_ASSERT((1u << (8*SIZEOF_INT-1)) > 0) 4479 #if 1 && (ACC_CC_SUNPROC) && !defined(ACCCHK_CFG_PEDANTIC) 4480 #else 4481 ACCCHK_ASSERT((long)(1ul << (8*SIZEOF_LONG-1)) < 0) 4482 #endif 4483 ACCCHK_ASSERT((1ul << (8*SIZEOF_LONG-1)) > 0) 4708 #elif 1 && (ACC_CC_SUNPROC) && !defined(ACCCHK_CFG_PEDANTIC) 4709 #elif !(ACC_BROKEN_INTEGRAL_PROMOTION) && (SIZEOF_INT > 1) 4710 ACCCHK_ASSERT( (int)((unsigned int)((unsigned char)128) << (int)(8*sizeof(int)-8)) < 0) 4711 #endif 4712 #if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0530) && (__BORLANDC__ < 0x0560)) 6788 ACCLIB_PUBLIC_NOINLINE(void, acc_debug_nop) (void) 6789 { 6790 } 6791 ACCLIB_PUBLIC_NOINLINE(int, acc_debug_align_check_query) (void) 6792 { 6793 #if (ACC_ARCH_AMD64 || ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC) 6794 # if defined(ACC_ARCH_AMD64_X32) 6795 unsigned long long r; 6796 # else 6797 size_t r; 6798 # endif 6799 __asm__ __volatile__("pushf\n pop %0\n" : "=a" (r) : : __ACC_ASM_CLOBBER); 6800 return (int)(r >> 18) & 1; 6801 #elif (ACC_ARCH_I386) && (ACC_ASM_SYNTAX_MSC)
P.S. Toolchain(output/host)、rootfs(output/images/rootfs.squashfs)