Hi Waldemar, On 26/05/16 22:05, Waldemar Brodkorb wrote: > Greg Ungerer wrote, >> On 20/05/16 14:20, Waldemar Brodkorb wrote: >>> Greg Ungerer wrote, >>>> On 16/05/16 19:54, Waldemar Brodkorb wrote: >>>>> I compile and test the thread test app from here on >>>>> Qemu coldfire emulation: >>>>> http://debug.openadk.org/arm-pthreads/hello.c >>>>> >>>>> Sometimes it works, sometimes I get SIGILL. >>>>> Tested with buildroot and qemu_m68k_mcf5208_defconfig. It uses gcc >>>>> 4.9.3 and binutils 2.25.1. The kernel is 4.5.3 including the signal >>>>> handler patch. uClibc-ng 1.0.14 is used. >>>>> >>>>> Any idea? >>>> >>>> Do you get the SIGILL when running without strace? >>> >>> Yes. >>> >>>> How often does it work, and not work? >>> >>> ~ # ill=0; for i in $(seq 1 50); do /test; if [ $? -ne 0 ]; then >>> ill=$(($ill+1)) ;fi; sleep 2; done >>> ~ # echo $ill >>> 30 >>> >>> It is not always the same. >> >> Ok. I expect I would see it pretty easily though if I >> run hello 100 times for example. >> >> >>>> I have a setup with a gcc-5.3/binutils-2.25.1 toolchain building >>>> linux-4.6 and using uClibc-ng-1.0.14 and using your hello.c test >>>> app and I don't see any SIGILLs. Ran it quite a few times but >>>> didn't see any. >>> >>> Hmm. I now changed to gcc 5.3.0 and see the same problem. >>> Need to try linux-4.6. What version of Qemu are you using? >>> I recently updated to 2.6.0. >> >> I was using an older 2.3.50. But I just pulled down 2.6 and >> tried again. I still don't see any SIGILLs. >> >> Looking at your strace dump and mine it puzzles me that the initial >> startup is a little different. On my dump the first output >> write() is the 3rd system call. On your traces it is much later. >> >> Can you send me your hello (and hello.gdb) binaries? > > They are here: > http://debug.openadk.org/coldfire/
Thanks. I can reproduce it with that binary easily. > Are you using linuxthreads.old or linuxthreads.new? > I use old, and new will be removed in the next uClibc-ng release. I am using the old linux threads. I have attached my uClibc-ng config so you can see what I am using. I can see that your hello binary is a good bit smaller than mine. The code generated looks quite different too. Do you compile apps and libs with -msep-data? Regards Greg
# # Automatically generated file; DO NOT EDIT. # uClibc-ng 1.0.14 C Library Configuration # # TARGET_alpha is not set # TARGET_arc is not set # TARGET_arm is not set # TARGET_avr32 is not set # TARGET_bfin is not set # TARGET_c6x is not set # TARGET_cris is not set # TARGET_frv is not set # TARGET_h8300 is not set # TARGET_hppa is not set # TARGET_i386 is not set # TARGET_ia64 is not set # TARGET_lm32 is not set TARGET_m68k=y # TARGET_metag is not set # TARGET_microblaze is not set # TARGET_mips is not set # TARGET_nios2 is not set # TARGET_or1k is not set # TARGET_powerpc is not set # TARGET_sh is not set # TARGET_sparc is not set # TARGET_x86_64 is not set # TARGET_xtensa is not set # # Target Architecture Features and Options # TARGET_ARCH="m68k" FORCE_OPTIONS_FOR_ARCH=y TARGET_SUBARCH="" # UCLIBC_FORMAT_FLAT is not set UCLIBC_FORMAT_FLAT_SEP_DATA=y # UCLIBC_FORMAT_SHARED_FLAT is not set ARCH_HAS_DEPRECATED_SYSCALLS=y ARCH_BIG_ENDIAN=y # # Using Big Endian # # ARCH_HAS_MMU is not set UCLIBC_HAS_FLOATS=y # UCLIBC_HAS_FPU is not set UCLIBC_HAS_SOFT_FLOAT=y DO_C99_MATH=y # DO_XSI_MATH is not set # UCLIBC_HAS_FENV is not set UCLIBC_HAS_LONG_DOUBLE_MATH=y KERNEL_HEADERS="$(STAGEDIR)/include" UCLIBC_UCLINUX_BROKEN_MUNMAP=y HAVE_DOT_CONFIG=y # # General Library Settings # # DOPIC is not set ARCH_HAS_NO_SHARED=y ARCH_HAS_NO_LDSO=y UCLIBC_CTOR_DTOR=y # HAS_NO_THREADS is not set LINUXTHREADS_OLD=y # LINUXTHREADS_NEW is not set UCLIBC_HAS_THREADS=y # PTHREADS_DEBUG_SUPPORT is not set UCLIBC_HAS_SYSLOG=y UCLIBC_HAS_LFS=y # MALLOC is not set MALLOC_SIMPLE=y # MALLOC_GLIBC_COMPAT is not set # UCLIBC_HAS_OBSTACK is not set UCLIBC_DYNAMIC_ATEXIT=y COMPAT_ATEXIT=y UCLIBC_HAS_UTMPX=y UCLIBC_HAS_UTMP=y UCLIBC_SUSV2_LEGACY=y UCLIBC_SUSV3_LEGACY=y # UCLIBC_SUSV3_LEGACY_MACROS is not set UCLIBC_SUSV4_LEGACY=y # UCLIBC_STRICT_HEADERS is not set # UCLIBC_HAS_STUBS is not set UCLIBC_HAS_SHADOW=y # UCLIBC_HAS_PROGRAM_INVOCATION_NAME is not set UCLIBC_HAS___PROGNAME=y UCLIBC_HAS_PTY=y ASSUME_DEVPTS=y UNIX98PTY_ONLY=y UCLIBC_HAS_GETPT=y UCLIBC_HAS_LIBUTIL=y UCLIBC_HAS_TM_EXTENSIONS=y UCLIBC_HAS_TZ_CACHING=y UCLIBC_HAS_TZ_FILE=y UCLIBC_HAS_TZ_FILE_READ_MANY=y UCLIBC_TZ_FILE_PATH="/etc/TZ" UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y # # Advanced Library Settings # UCLIBC_PWD_BUFFER_SIZE=256 UCLIBC_GRP_BUFFER_SIZE=256 # # Support various families of functions # UCLIBC_LINUX_MODULE_26=y # UCLIBC_LINUX_MODULE_24 is not set UCLIBC_LINUX_SPECIFIC=y UCLIBC_HAS_GNU_ERROR=y UCLIBC_BSD_SPECIFIC=y UCLIBC_HAS_BSD_ERR=y # UCLIBC_HAS_OBSOLETE_BSD_SIGNAL is not set # UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set # UCLIBC_NTP_LEGACY is not set # UCLIBC_SV4_DEPRECATED is not set UCLIBC_HAS_REALTIME=y UCLIBC_HAS_ADVANCED_REALTIME=y UCLIBC_HAS_EPOLL=y UCLIBC_HAS_XATTR=y UCLIBC_HAS_PROFILING=y UCLIBC_HAS_CRYPT_IMPL=y # UCLIBC_HAS_SHA256_CRYPT_IMPL is not set # UCLIBC_HAS_SHA512_CRYPT_IMPL is not set UCLIBC_HAS_CRYPT=y UCLIBC_HAS_NETWORK_SUPPORT=y UCLIBC_HAS_SOCKET=y UCLIBC_HAS_IPV4=y # UCLIBC_HAS_IPV6 is not set UCLIBC_HAS_RPC=y UCLIBC_HAS_FULL_RPC=y # UCLIBC_HAS_REENTRANT_RPC is not set # UCLIBC_USE_NETLINK is not set # UCLIBC_HAS_BSD_RES_CLOSE is not set UCLIBC_HAS_COMPAT_RES_STATE=y # UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set UCLIBC_HAS_RESOLVER_SUPPORT=y # UCLIBC_HAS_LIBRESOLV_STUB is not set # UCLIBC_HAS_LIBNSL_STUB is not set # # String and Stdio Support # UCLIBC_HAS_STRING_GENERIC_OPT=y UCLIBC_HAS_STRING_ARCH_OPT=y UCLIBC_HAS_CTYPE_TABLES=y UCLIBC_HAS_CTYPE_SIGNED=y UCLIBC_HAS_CTYPE_UNSAFE=y # UCLIBC_HAS_CTYPE_CHECKED is not set # UCLIBC_HAS_CTYPE_ENFORCED is not set # UCLIBC_HAS_WCHAR is not set # UCLIBC_HAS_LOCALE is not set # UCLIBC_ICONV_NOLOCALE_HACK is not set # UCLIBC_HAS_HEXADECIMAL_FLOATS is not set # UCLIBC_HAS_GLIBC_CUSTOM_PRINTF is not set # USE_OLD_VFPRINTF is not set UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9 # UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set UCLIBC_HAS_STDIO_BUFSIZ_256=y # UCLIBC_HAS_STDIO_BUFSIZ_512 is not set # UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set # UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set # UCLIBC_HAS_STDIO_BUFSIZ_4096 is not set # UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y # UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set # UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set # UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set UCLIBC_HAS_STDIO_GETC_MACRO=y UCLIBC_HAS_STDIO_PUTC_MACRO=y UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y # UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set # UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE is not set # UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE is not set # UCLIBC_HAS_GLIBC_CUSTOM_STREAMS is not set UCLIBC_HAS_PRINTF_M_SPEC=y UCLIBC_HAS_ERRNO_MESSAGES=y UCLIBC_HAS_SYS_ERRLIST=y UCLIBC_HAS_SIGNUM_MESSAGES=y # UCLIBC_HAS_SYS_SIGLIST is not set UCLIBC_HAS_GNU_GETOPT=y UCLIBC_HAS_GETOPT_LONG=y UCLIBC_HAS_GNU_GETSUBOPT=y # UCLIBC_HAS_ARGP is not set # # Big and Tall # UCLIBC_HAS_REGEX=y UCLIBC_HAS_REGEX_OLD=y UCLIBC_HAS_FNMATCH=y UCLIBC_HAS_FNMATCH_OLD=y # UCLIBC_HAS_WORDEXP is not set # UCLIBC_HAS_NFTW is not set # UCLIBC_HAS_FTW is not set # UCLIBC_HAS_FTS is not set UCLIBC_HAS_GLOB=y # UCLIBC_HAS_GNU_GLOB is not set # # Library Installation Options # RUNTIME_PREFIX="/usr/$(TARGET_ARCH)-linux-uclibc/" DEVEL_PREFIX="/usr/$(TARGET_ARCH)-linux-uclibc" MULTILIB_DIR="lib" HARDWIRED_ABSPATH=y # # Security options # # UCLIBC_HAS_ARC4RANDOM is not set # UCLIBC_HAS_SSP is not set UCLIBC_BUILD_NOEXECSTACK=y # # Development/debugging options # CROSS_COMPILER_PREFIX="" UCLIBC_EXTRA_CFLAGS="-m5307 -DCONFIG_COLDFIRE -O2 -g -fomit-frame-pointer -pipe -fno-common -fno-builtin -Wall -DEMBED -msep-data " # DODEBUG is not set # DODEBUG_PT is not set DOSTRIP=y # DOASSERTS is not set WARNINGS="-Wall" # EXTRA_WARNINGS is not set # DOMULTI is not set
_______________________________________________ uClinux-dev mailing list uClinux-dev@uclinux.org http://mailman.uclinux.org/mailman/listinfo/uclinux-dev This message was resent by uclinux-dev@uclinux.org To unsubscribe see: http://mailman.uclinux.org/mailman/options/uclinux-dev