Before the August 25 commit "default ?conf to native arch", I could do this:
make KCONFIG_ALLCONFIG=miniconfig-uClibc.$ARCH allnoconfig && make KERNEL_HEADERS="${STAGE_DIR}/include" PREFIX="${STAGE_DIR}/" \ CROSS="${ARCH}-" RUNTIME_PREFIX=/ DEVEL_PREFIX=/ -j $CPUS \ install hostutils The KCONFIG_ALLCONFIG file would specify the architecture it was building for, and CROSS= would specified the appropriate cross compiler prefix. (This is how uCLibc has worked for many years now. Now whenever I'm _not_ building for my host system, it dies trying to build x86-64 assembly source with the target toolchain. For example, when building for an armv4l target (see attached miniconfig file), it does: AS lib/crt1.o libc/sysdeps/linux/x86_64/crt1.S: Assembler messages: libc/sysdeps/linux/x86_64/crt1.S:80: Error: bad instruction `xorl %ebp,%ebp' libc/sysdeps/linux/x86_64/crt1.S:96: Error: bad instruction `movq %rdx,%r9' libc/sysdeps/linux/x86_64/crt1.S:97: Error: bad instruction `popq %rsi' libc/sysdeps/linux/x86_64/crt1.S:98: Error: bad instruction `movq %rsp,%rdx' libc/sysdeps/linux/x86_64/crt1.S:101: Error: bad instruction `andq $~15,%rsp' libc/sysdeps/linux/x86_64/crt1.S:103: Error: bad instruction `pushq %rax' libc/sysdeps/linux/x86_64/crt1.S:107: Error: bad instruction `pushq %rsp' libc/sysdeps/linux/x86_64/crt1.S:121: Error: bad instruction `movq $main,%rdi' libc/sysdeps/linux/x86_64/crt1.S:124: Error: bad instruction `movq $_init, %rcx' libc/sysdeps/linux/x86_64/crt1.S:125: Error: bad instruction `movq $_fini,%r8' libc/sysdeps/linux/x86_64/crt1.S:128: Error: bad instruction `call __uClibc_main' libc/sysdeps/linux/x86_64/crt1.S:131: Error: bad instruction `hlt' And on -j 2 it'll do the same for Scrt1.o on its way out. Before that commit, it didn't do that. It seems like a new redundant symbol showed up, but there's no way to set it in menuconfig! Here's the start of the resulting .config: TARGET_ARCH="x86_64" # TARGET_alpha is not set TARGET_arm=y # TARGET_avr32 is not set # TARGET_bfin is not set And in menuconfig target architecture is indeed arm, but there's nowhere to set TARGET_ARCH. If I do a forward slash search for TARGET_ARCH it says: Symbol: TARGET_ARCH [=x86_64] Notice the lack of a menu location: it's a hidden symbol. That's not the target arch, that's the HOST_ARCH. How do I figure out what magic values I need to stick in the .config to specify a SECOND way what target I'm building for? (Is the powerpc target "ppc" or "powerpc"? Is the sh4 target "superh"? I see that x86_64 has an underscore rather than a dash. Presumably it's i686 rather than x86 for 32-bit...) More to the point: what exactly is this change _for_? What's the point of adding a new symbol to redundantly specify information that's already in the .config, without even adding kconfig dependencies to see if the two ways of specifying it are remotely similar? Rob -- Latency is more important than throughput. It's that simple. - Linus Torvalds
TARGET_arm=y ARCH_WANTS_LITTLE_ENDIAN=y ARCH_HAS_MMU=y ARCH_USE_MMU=y UCLIBC_HAS_FLOATS=y DO_C99_MATH=y UCLIBC_HAS_FENV=y HAVE_SHARED=y LDSO_CACHE_SUPPORT=y LDSO_BASE_FILENAME="ld-uClibc.so" UCLIBC_STATIC_LDCONFIG=y LDSO_RUNPATH=y UCLIBC_CTOR_DTOR=y UCLIBC_HAS_THREADS=y LINUXTHREADS_OLD=y UCLIBC_HAS_SYSLOG=y UCLIBC_HAS_LFS=y MALLOC=y MALLOC_GLIBC_COMPAT=y UCLIBC_DYNAMIC_ATEXIT=y UCLIBC_SUSV3_LEGACY=y UCLIBC_SUSV3_LEGACY_MACROS=y UCLIBC_HAS_SHADOW=y UCLIBC_HAS_PTY=y ASSUME_DEVPTS=y UNIX98PTY_ONLY=y UCLIBC_HAS_TM_EXTENSIONS=y UCLIBC_HAS_TZ_CACHING=y UCLIBC_HAS_TZ_FILE=y UCLIBC_HAS_TZ_FILE_READ_MANY=y UCLIBC_LINUX_MODULE_24=y UCLIBC_LINUX_SPECIFIC=y UCLIBC_HAS_GNU_ERROR=y UCLIBC_BSD_SPECIFIC=y UCLIBC_HAS_BSD_ERR=y UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL=y UCLIBC_NTP_LEGACY=y UCLIBC_SV4_DEPRECATED=y UCLIBC_HAS_EPOLL=y UCLIBC_HAS_XATTR=y UCLIBC_HAS_PROFILING=y UCLIBC_HAS_CRYPT_IMPL=y UCLIBC_HAS_NETWORK_SUPPORT=y UCLIBC_HAS_IPV4=y UCLIBC_HAS_IPV6=y UCLIBC_HAS_RPC=y UCLIBC_HAS_FULL_RPC=y UCLIBC_HAS_REENTRANT_RPC=y UCLIBC_HAS_STRING_GENERIC_OPT=y UCLIBC_HAS_STRING_ARCH_OPT=y UCLIBC_HAS_CTYPE_TABLES=y UCLIBC_HAS_CTYPE_SIGNED=y UCLIBC_HAS_WCHAR=y UCLIBC_HAS_STDIO_GETC_MACRO=y UCLIBC_HAS_STDIO_PUTC_MACRO=y UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y UCLIBC_HAS_PRINTF_M_SPEC=y UCLIBC_HAS_ERRNO_MESSAGES=y UCLIBC_HAS_SIGNUM_MESSAGES=y UCLIBC_HAS_GNU_GETOPT=y UCLIBC_HAS_GNU_GETSUBOPT=y UCLIBC_HAS_REGEX=y UCLIBC_HAS_REGEX_OLD=y UCLIBC_HAS_FNMATCH=y UCLIBC_HAS_FNMATCH_OLD=y UCLIBC_HAS_GLOB=y UCLIBC_HAS_GNU_GLOB=y UCLIBC_BUILD_RELRO=y UCLIBC_BUILD_NOEXECSTACK=y
_______________________________________________ uClibc mailing list uClibc@uclibc.org http://lists.busybox.net/mailman/listinfo/uclibc