diff -Nru ivykis-0.42/config.guess ivykis-0.42.2/config.guess --- ivykis-0.42/config.guess 2017-04-29 11:07:29.000000000 +0000 +++ ivykis-0.42.2/config.guess 2017-10-17 23:42:59.000000000 +0000 @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2015 Free Software Foundation, Inc. +# Copyright 1992-2016 Free Software Foundation, Inc. -timestamp='2015-01-01' +timestamp='2016-10-02' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -27,7 +27,7 @@ # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess # # Please send patches to . @@ -50,7 +50,7 @@ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2015 Free Software Foundation, Inc. +Copyright 1992-2016 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -168,19 +168,29 @@ # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + /sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || \ + echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` + machine=${arch}${endian}-unknown + ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. + # to ELF recently (or will in the future) and ABI. case "${UNAME_MACHINE_ARCH}" in + earm*) + os=netbsdelf + ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ @@ -197,6 +207,13 @@ os=netbsd ;; esac + # Determine ABI tags. + case "${UNAME_MACHINE_ARCH}" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` + ;; + esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need @@ -207,13 +224,13 @@ release='-gnu' ;; *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" + echo "${machine}-${os}${release}${abi}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` @@ -223,6 +240,10 @@ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} + exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; @@ -235,6 +256,9 @@ *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; + *:Sortix:*:*) + echo ${UNAME_MACHINE}-unknown-sortix + exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) @@ -251,42 +275,42 @@ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; + UNAME_MACHINE=alphaev5 ;; "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; + UNAME_MACHINE=alphaev56 ;; "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; + UNAME_MACHINE=alphapca56 ;; "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; + UNAME_MACHINE=alphapca57 ;; "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; + UNAME_MACHINE=alphaev6 ;; "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; + UNAME_MACHINE=alphaev67 ;; "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; + UNAME_MACHINE=alphaev69 ;; "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; + UNAME_MACHINE=alphaev7 ;; "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; + UNAME_MACHINE=alphaev79 ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 @@ -359,16 +383,16 @@ exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build - SUN_ARCH="i386" + SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then - SUN_ARCH="x86_64" + SUN_ARCH=x86_64 fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` @@ -393,7 +417,7 @@ exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} @@ -618,13 +642,13 @@ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi @@ -663,11 +687,11 @@ exit (0); } EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac - if [ ${HP_ARCH} = "hppa2.0w" ] + if [ ${HP_ARCH} = hppa2.0w ] then eval $set_cc_for_build @@ -680,12 +704,12 @@ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then - HP_ARCH="hppa2.0w" + HP_ARCH=hppa2.0w else - HP_ARCH="hppa64" + HP_ARCH=hppa64 fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} @@ -790,14 +814,14 @@ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) @@ -879,7 +903,7 @@ exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix @@ -902,7 +926,7 @@ EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="gnulibc1" ; fi + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arc:Linux:*:* | arceb:Linux:*:*) @@ -933,6 +957,9 @@ crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; + e2k:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; @@ -945,6 +972,9 @@ ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; + k1om:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; @@ -970,6 +1000,9 @@ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; + mips64el:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; openrisc*:Linux:*:*) echo or1k-unknown-linux-${LIBC} exit ;; @@ -1002,6 +1035,9 @@ ppcle:Linux:*:*) echo powerpcle-unknown-linux-${LIBC} exit ;; + riscv32:Linux:*:* | riscv64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux-${LIBC} exit ;; @@ -1021,7 +1057,7 @@ echo ${UNAME_MACHINE}-dec-linux-${LIBC} exit ;; x86_64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} @@ -1100,7 +1136,7 @@ # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub - # prints for the "djgpp" host, or else GDB configury will decide that + # prints for the "djgpp" host, or else GDB configure will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; @@ -1249,6 +1285,9 @@ SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; + SX-ACE:SUPER-UX:*:*) + echo sxace-nec-superux${UNAME_RELEASE} + exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; @@ -1262,9 +1301,9 @@ UNAME_PROCESSOR=powerpc fi if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then case $UNAME_PROCESSOR in @@ -1286,7 +1325,7 @@ exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then + if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi @@ -1317,7 +1356,7 @@ # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. - if test "$cputype" = "386"; then + if test "$cputype" = 386; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" @@ -1359,7 +1398,7 @@ echo i386-pc-xenix exit ;; i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'` exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos @@ -1370,23 +1409,25 @@ x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-unknown-esx exit ;; + amd64:Isilon\ OneFS:*:*) + echo x86_64-unknown-onefs + exit ;; esac cat >&2 < in order to provide the needed -information to handle your system. +If $0 has already been updated, send the following data and any +information you think might be pertinent to config-patches@gnu.org to +provide the necessary information to handle your system. config.guess timestamp = $timestamp diff -Nru ivykis-0.42/config.sub ivykis-0.42.2/config.sub --- ivykis-0.42/config.sub 2017-04-29 11:07:29.000000000 +0000 +++ ivykis-0.42.2/config.sub 2017-10-17 23:42:59.000000000 +0000 @@ -1,8 +1,8 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2015 Free Software Foundation, Inc. +# Copyright 1992-2016 Free Software Foundation, Inc. -timestamp='2015-01-01' +timestamp='2016-09-05' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -33,7 +33,7 @@ # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases @@ -53,8 +53,7 @@ me=`echo "$0" | sed -e 's,.*/,,'` usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS Canonicalize a configuration name. @@ -68,7 +67,7 @@ version="\ GNU config.sub ($timestamp) -Copyright 1992-2015 Free Software Foundation, Inc. +Copyright 1992-2016 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -117,8 +116,8 @@ case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ - knetbsd*-gnu* | netbsd*-gnu* | \ - kopensolaris*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ + kopensolaris*-gnu* | cloudabi*-eabi* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` @@ -255,11 +254,12 @@ | arc | arceb \ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ | avr | avr32 \ + | ba \ | be32 | be64 \ | bfin \ | c4x | c8051 | clipper \ | d10v | d30v | dlx | dsp16xx \ - | epiphany \ + | e2k | epiphany \ | fido | fr30 | frv | ft32 \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ @@ -305,7 +305,7 @@ | riscv32 | riscv64 \ | rl78 | rx \ | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ @@ -376,12 +376,13 @@ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ + | ba-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | c8051-* | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ + | e2k-* | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ @@ -428,12 +429,13 @@ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ + | riscv32-* | riscv64-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ @@ -518,6 +520,9 @@ basic_machine=i386-pc os=-aros ;; + asmjs) + basic_machine=asmjs-unknown + ;; aux) basic_machine=m68k-apple os=-aux @@ -638,6 +643,14 @@ basic_machine=m68k-bull os=-sysv3 ;; + e500v[12]) + basic_machine=powerpc-unknown + os=$os"spe" + ;; + e500v[12]-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + os=$os"spe" + ;; ebmon29k) basic_machine=a29k-amd os=-ebmon @@ -1017,7 +1030,7 @@ ppc-* | ppcbe-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; - ppcle | powerpclittle | ppc-le | powerpc-little) + ppcle | powerpclittle) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) @@ -1027,7 +1040,7 @@ ;; ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) + ppc64le | powerpc64little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) @@ -1373,18 +1386,18 @@ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* \ + | -aos* | -aros* | -cloudabi* | -sortix* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -bitrig* | -openbsd* | -solidbsd* \ + | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ @@ -1393,7 +1406,8 @@ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*) + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ + | -onefs* | -tirtos* | -phoenix*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1525,6 +1539,8 @@ ;; -nacl*) ;; + -ios) + ;; -none) ;; *) diff -Nru ivykis-0.42/configure ivykis-0.42.2/configure --- ivykis-0.42/configure 2017-04-29 11:07:29.000000000 +0000 +++ ivykis-0.42.2/configure 2017-10-17 23:42:59.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for ivykis 0.42. +# Generated by GNU Autoconf 2.69 for ivykis 0.42.2. # # Report bugs to . # @@ -590,8 +590,8 @@ # Identity of this package. PACKAGE_NAME='ivykis' PACKAGE_TARNAME='ivykis' -PACKAGE_VERSION='0.42' -PACKAGE_STRING='ivykis 0.42' +PACKAGE_VERSION='0.42.2' +PACKAGE_STRING='ivykis 0.42.2' PACKAGE_BUGREPORT='libivykis-discuss@lists.sourceforge.net' PACKAGE_URL='' @@ -1337,7 +1337,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures ivykis 0.42 to adapt to many kinds of systems. +\`configure' configures ivykis 0.42.2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1407,7 +1407,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of ivykis 0.42:";; + short | recursive ) echo "Configuration of ivykis 0.42.2:";; esac cat <<\_ACEOF @@ -1517,7 +1517,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -ivykis configure 0.42 +ivykis configure 0.42.2 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1997,7 +1997,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by ivykis $as_me 0.42, which was +It was created by ivykis $as_me 0.42.2, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2867,7 +2867,7 @@ # Define the identity of the package. PACKAGE='ivykis' - VERSION='0.42' + VERSION='0.42.2' cat >>confdefs.h <<_ACEOF @@ -14636,7 +14636,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by ivykis $as_me 0.42, which was +This file was extended by ivykis $as_me 0.42.2, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -14702,7 +14702,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -ivykis config.status 0.42 +ivykis config.status 0.42.2 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -Nru ivykis-0.42/configure.ac ivykis-0.42.2/configure.ac --- ivykis-0.42/configure.ac 2017-04-29 11:07:29.000000000 +0000 +++ ivykis-0.42.2/configure.ac 2017-10-17 23:42:59.000000000 +0000 @@ -1,5 +1,5 @@ AC_PREREQ(2.59) -AC_INIT([ivykis], [0.42], [libivykis-discuss@lists.sourceforge.net]) +AC_INIT([ivykis], [0.42.2], [libivykis-discuss@lists.sourceforge.net]) AC_CONFIG_SRCDIR([src/iv_avl.c]) AC_CONFIG_SUBDIRS([test.mt]) AC_CONFIG_HEADER(config.h) diff -Nru ivykis-0.42/debian/changelog ivykis-0.42.2/debian/changelog --- ivykis-0.42/debian/changelog 2017-07-23 08:33:46.000000000 +0000 +++ ivykis-0.42.2/debian/changelog 2017-10-29 05:36:50.000000000 +0000 @@ -1,3 +1,17 @@ +ivykis (0.42.2-1) unstable; urgency=medium + + * New upstream release. + * Update Standards-Version to 4.1.1: + - change package priority to optional. + + -- Laszlo Boszormenyi (GCS) Sun, 29 Oct 2017 05:36:50 +0000 + +ivykis (0.42.1-1) unstable; urgency=low + + * New upstream release. + + -- Laszlo Boszormenyi (GCS) Tue, 29 Aug 2017 18:13:08 +0000 + ivykis (0.42-1) unstable; urgency=medium * New upstream release. diff -Nru ivykis-0.42/debian/control ivykis-0.42.2/debian/control --- ivykis-0.42/debian/control 2017-07-23 08:33:46.000000000 +0000 +++ ivykis-0.42.2/debian/control 2017-10-28 23:41:54.000000000 +0000 @@ -1,8 +1,8 @@ Source: ivykis -Priority: extra +Priority: optional Maintainer: Laszlo Boszormenyi (GCS) Build-Depends: debhelper (>= 10~) -Standards-Version: 4.0.0 +Standards-Version: 4.1.1 Section: libs Homepage: http://libivykis.sourceforge.net/ Vcs-Git: git://anonscm.debian.org/collab-maint/ivykis.git -b debian diff -Nru ivykis-0.42/src/iv_event.c ivykis-0.42.2/src/iv_event.c --- ivykis-0.42/src/iv_event.c 2017-04-29 11:07:29.000000000 +0000 +++ ivykis-0.42.2/src/iv_event.c 2017-10-17 23:42:59.000000000 +0000 @@ -58,6 +58,11 @@ break; ___mutex_lock(&st->event_list_mutex); + + if (iv_list_empty(&events)) { + ___mutex_unlock(&st->event_list_mutex); + break; + } } } @@ -92,6 +97,8 @@ { struct iv_state *st = iv_get_state(); + st->numobjs++; + if (!st->event_count++ && is_mt_app()) { if (!iv_event_use_event_raw && event_rx_on(st)) iv_event_use_event_raw = 1; @@ -131,6 +138,8 @@ event_rx_off(st); } } + + st->numobjs--; } void iv_event_post(struct iv_event *this) diff -Nru ivykis-0.42/src/iv_task.c ivykis-0.42.2/src/iv_task.c --- ivykis-0.42/src/iv_task.c 2017-04-29 11:07:29.000000000 +0000 +++ ivykis-0.42.2/src/iv_task.c 2017-10-17 23:42:59.000000000 +0000 @@ -56,7 +56,7 @@ struct iv_task_ *t = (struct iv_task_ *)_t; INIT_IV_LIST_HEAD(&t->list); - t->epoch = st->task_epoch; + t->epoch = (st != NULL) ? st->task_epoch : 0; } void iv_task_register(struct iv_task *_t) diff -Nru ivykis-0.42/src/iv_timer.c ivykis-0.42.2/src/iv_timer.c --- ivykis-0.42/src/iv_timer.c 2017-04-29 11:07:29.000000000 +0000 +++ ivykis-0.42.2/src/iv_timer.c 2017-10-17 23:42:59.000000000 +0000 @@ -341,13 +341,13 @@ pull_up(st, (*p)->index, p); push_down(st, (*p)->index, p); } + + st->numobjs--; } else { iv_list_del(&t->list_expired); } t->index = -1; - - st->numobjs--; } int iv_timer_registered(const struct iv_timer *_t) diff -Nru ivykis-0.42/src/Makefile.am ivykis-0.42.2/src/Makefile.am --- ivykis-0.42/src/Makefile.am 2017-04-29 11:07:29.000000000 +0000 +++ ivykis-0.42.2/src/Makefile.am 2017-10-17 23:42:59.000000000 +0000 @@ -60,7 +60,7 @@ INC += include/iv_inotify.h endif -LINKFLAGS = -version-info 5:2:5 +LINKFLAGS = -version-info 5:4:5 if HAVE_VERSIONING LINKFLAGS += -Wl,--version-script,$(top_srcdir)/libivykis.posix.ver endif diff -Nru ivykis-0.42/src/Makefile.in ivykis-0.42.2/src/Makefile.in --- ivykis-0.42/src/Makefile.in 2017-04-29 11:07:29.000000000 +0000 +++ ivykis-0.42.2/src/Makefile.in 2017-10-17 23:42:59.000000000 +0000 @@ -395,7 +395,7 @@ INC = include/iv_avl.h include/iv_event.h include/iv_event_raw.h \ include/iv_list.h include/iv_thread.h include/iv_tls.h \ include/iv_work.h $(am__append_2) $(am__append_8) -@HAVE_POSIX_TRUE@LINKFLAGS = -version-info 5:2:5 $(am__append_9) +@HAVE_POSIX_TRUE@LINKFLAGS = -version-info 5:4:5 $(am__append_9) @HAVE_WIN32_TRUE@LINKFLAGS = -version-info 0:0:0 \ @HAVE_WIN32_TRUE@ -Wl,--version-script,$(top_srcdir)/libivykis.win32.ver \ @HAVE_WIN32_TRUE@ -no-undefined diff -Nru ivykis-0.42/test/event_unregister_bug.c ivykis-0.42.2/test/event_unregister_bug.c --- ivykis-0.42/test/event_unregister_bug.c 1970-01-01 00:00:00.000000000 +0000 +++ ivykis-0.42.2/test/event_unregister_bug.c 2017-10-17 23:42:59.000000000 +0000 @@ -0,0 +1,55 @@ +/* + * ivykis, an event handling library + * Copyright (C) 2017 Lennert Buytenhek + * Dedicated to Marija Kulikova. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version + * 2.1 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 2.1 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License version 2.1 along with this program; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#include +#include +#include +#include +#include + +static struct iv_event event1; +static struct iv_event event2; + +static void handler(void *_t) +{ + iv_event_unregister(&event1); + iv_event_unregister(&event2); +} + +int main() +{ + iv_init(); + + IV_EVENT_INIT(&event1); + event1.handler = handler; + iv_event_register(&event1); + iv_event_post(&event1); + + IV_EVENT_INIT(&event2); + event2.handler = handler; + iv_event_register(&event2); + iv_event_post(&event2); + + iv_main(); + + iv_deinit(); + + return 0; +} diff -Nru ivykis-0.42/test/Makefile.am ivykis-0.42.2/test/Makefile.am --- ivykis-0.42/test/Makefile.am 2017-04-29 11:07:29.000000000 +0000 +++ ivykis-0.42.2/test/Makefile.am 2017-10-17 23:42:59.000000000 +0000 @@ -7,10 +7,12 @@ PROGS = iv_event_raw_bench_timer TESTS = avl \ + event_unregister_bug \ iv_event_raw_test \ struct_sizes \ timer \ timer_fairness \ + timer_fairness_bug \ timer_order \ timer_past \ timer_zero diff -Nru ivykis-0.42/test/Makefile.in ivykis-0.42.2/test/Makefile.in --- ivykis-0.42/test/Makefile.in 2017-04-29 11:07:29.000000000 +0000 +++ ivykis-0.42.2/test/Makefile.in 2017-10-17 23:42:59.000000000 +0000 @@ -88,8 +88,10 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -TESTS = avl$(EXEEXT) iv_event_raw_test$(EXEEXT) struct_sizes$(EXEEXT) \ - timer$(EXEEXT) timer_fairness$(EXEEXT) timer_order$(EXEEXT) \ +TESTS = avl$(EXEEXT) event_unregister_bug$(EXEEXT) \ + iv_event_raw_test$(EXEEXT) struct_sizes$(EXEEXT) \ + timer$(EXEEXT) timer_fairness$(EXEEXT) \ + timer_fairness_bug$(EXEEXT) timer_order$(EXEEXT) \ timer_past$(EXEEXT) timer_zero$(EXEEXT) $(am__EXEEXT_4) @HAVE_POSIX_TRUE@am__append_1 = client \ @HAVE_POSIX_TRUE@ connectfail \ @@ -130,10 +132,11 @@ am__EXEEXT_3 = iv_event_raw_bench_timer$(EXEEXT) $(am__EXEEXT_1) \ $(am__EXEEXT_2) @HAVE_POSIX_TRUE@am__EXEEXT_4 = iv_signal_test$(EXEEXT) -am__EXEEXT_5 = avl$(EXEEXT) iv_event_raw_test$(EXEEXT) \ - struct_sizes$(EXEEXT) timer$(EXEEXT) timer_fairness$(EXEEXT) \ - timer_order$(EXEEXT) timer_past$(EXEEXT) timer_zero$(EXEEXT) \ - $(am__EXEEXT_4) +am__EXEEXT_5 = avl$(EXEEXT) event_unregister_bug$(EXEEXT) \ + iv_event_raw_test$(EXEEXT) struct_sizes$(EXEEXT) \ + timer$(EXEEXT) timer_fairness$(EXEEXT) \ + timer_fairness_bug$(EXEEXT) timer_order$(EXEEXT) \ + timer_past$(EXEEXT) timer_zero$(EXEEXT) $(am__EXEEXT_4) PROGRAMS = $(noinst_PROGRAMS) am_avl_OBJECTS = avl.$(OBJEXT) avl_OBJECTS = $(am_avl_OBJECTS) @@ -155,6 +158,10 @@ connectreset_OBJECTS = $(am_connectreset_OBJECTS) connectreset_LDADD = $(LDADD) connectreset_DEPENDENCIES = $(top_builddir)/src/libivykis.la +event_unregister_bug_SOURCES = event_unregister_bug.c +event_unregister_bug_OBJECTS = event_unregister_bug.$(OBJEXT) +event_unregister_bug_LDADD = $(LDADD) +event_unregister_bug_DEPENDENCIES = $(top_builddir)/src/libivykis.la am_iv_event_raw_bench_signal_OBJECTS = \ iv_event_raw_bench_signal-iv_event_raw_bench.$(OBJEXT) iv_event_raw_bench_signal_OBJECTS = \ @@ -222,6 +229,10 @@ timer_fairness_OBJECTS = $(am_timer_fairness_OBJECTS) timer_fairness_LDADD = $(LDADD) timer_fairness_DEPENDENCIES = $(top_builddir)/src/libivykis.la +timer_fairness_bug_SOURCES = timer_fairness_bug.c +timer_fairness_bug_OBJECTS = timer_fairness_bug.$(OBJEXT) +timer_fairness_bug_LDADD = $(LDADD) +timer_fairness_bug_DEPENDENCIES = $(top_builddir)/src/libivykis.la am_timer_order_OBJECTS = timer_order.$(OBJEXT) timer_order_OBJECTS = $(am_timer_order_OBJECTS) timer_order_LDADD = $(LDADD) @@ -269,7 +280,8 @@ am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(avl_SOURCES) $(client_SOURCES) $(connectfail_SOURCES) \ - $(connectreset_SOURCES) $(iv_event_raw_bench_signal_SOURCES) \ + $(connectreset_SOURCES) event_unregister_bug.c \ + $(iv_event_raw_bench_signal_SOURCES) \ $(iv_event_raw_bench_timer_SOURCES) \ $(iv_event_raw_test_SOURCES) $(iv_fd_pump_discard_SOURCES) \ $(iv_fd_pump_echo_SOURCES) iv_inotify_test.c \ @@ -277,10 +289,11 @@ $(iv_signal_bench_timer_SOURCES) \ $(iv_signal_child_test_SOURCES) $(iv_signal_test_SOURCES) \ $(null_SOURCES) $(struct_sizes_SOURCES) $(timer_SOURCES) \ - $(timer_fairness_SOURCES) $(timer_order_SOURCES) \ - $(timer_past_SOURCES) timer_zero.c + $(timer_fairness_SOURCES) timer_fairness_bug.c \ + $(timer_order_SOURCES) $(timer_past_SOURCES) timer_zero.c DIST_SOURCES = $(avl_SOURCES) $(client_SOURCES) $(connectfail_SOURCES) \ - $(connectreset_SOURCES) $(iv_event_raw_bench_signal_SOURCES) \ + $(connectreset_SOURCES) event_unregister_bug.c \ + $(iv_event_raw_bench_signal_SOURCES) \ $(iv_event_raw_bench_timer_SOURCES) \ $(iv_event_raw_test_SOURCES) $(iv_fd_pump_discard_SOURCES) \ $(iv_fd_pump_echo_SOURCES) iv_inotify_test.c \ @@ -288,8 +301,8 @@ $(iv_signal_bench_timer_SOURCES) \ $(iv_signal_child_test_SOURCES) $(iv_signal_test_SOURCES) \ $(null_SOURCES) $(struct_sizes_SOURCES) $(timer_SOURCES) \ - $(timer_fairness_SOURCES) $(timer_order_SOURCES) \ - $(timer_past_SOURCES) timer_zero.c + $(timer_fairness_SOURCES) timer_fairness_bug.c \ + $(timer_order_SOURCES) $(timer_past_SOURCES) timer_zero.c am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -726,6 +739,10 @@ @rm -f connectreset$(EXEEXT) $(AM_V_CCLD)$(LINK) $(connectreset_OBJECTS) $(connectreset_LDADD) $(LIBS) +event_unregister_bug$(EXEEXT): $(event_unregister_bug_OBJECTS) $(event_unregister_bug_DEPENDENCIES) $(EXTRA_event_unregister_bug_DEPENDENCIES) + @rm -f event_unregister_bug$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(event_unregister_bug_OBJECTS) $(event_unregister_bug_LDADD) $(LIBS) + iv_event_raw_bench_signal$(EXEEXT): $(iv_event_raw_bench_signal_OBJECTS) $(iv_event_raw_bench_signal_DEPENDENCIES) $(EXTRA_iv_event_raw_bench_signal_DEPENDENCIES) @rm -f iv_event_raw_bench_signal$(EXEEXT) $(AM_V_CCLD)$(LINK) $(iv_event_raw_bench_signal_OBJECTS) $(iv_event_raw_bench_signal_LDADD) $(LIBS) @@ -786,6 +803,10 @@ @rm -f timer_fairness$(EXEEXT) $(AM_V_CCLD)$(LINK) $(timer_fairness_OBJECTS) $(timer_fairness_LDADD) $(LIBS) +timer_fairness_bug$(EXEEXT): $(timer_fairness_bug_OBJECTS) $(timer_fairness_bug_DEPENDENCIES) $(EXTRA_timer_fairness_bug_DEPENDENCIES) + @rm -f timer_fairness_bug$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(timer_fairness_bug_OBJECTS) $(timer_fairness_bug_LDADD) $(LIBS) + timer_order$(EXEEXT): $(timer_order_OBJECTS) $(timer_order_DEPENDENCIES) $(EXTRA_timer_order_DEPENDENCIES) @rm -f timer_order$(EXEEXT) $(AM_V_CCLD)$(LINK) $(timer_order_OBJECTS) $(timer_order_LDADD) $(LIBS) @@ -808,6 +829,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/client.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connectfail.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connectreset.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/event_unregister_bug.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iv_event_raw_bench.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iv_event_raw_bench_signal-iv_event_raw_bench.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iv_event_raw_test.Po@am__quote@ @@ -823,6 +845,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/struct_sizes.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timer_fairness.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timer_fairness_bug.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timer_order.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timer_past.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timer_zero.Po@am__quote@ @@ -1082,6 +1105,13 @@ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +event_unregister_bug.log: event_unregister_bug$(EXEEXT) + @p='event_unregister_bug$(EXEEXT)'; \ + b='event_unregister_bug'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) iv_event_raw_test.log: iv_event_raw_test$(EXEEXT) @p='iv_event_raw_test$(EXEEXT)'; \ b='iv_event_raw_test'; \ @@ -1109,6 +1139,13 @@ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) +timer_fairness_bug.log: timer_fairness_bug$(EXEEXT) + @p='timer_fairness_bug$(EXEEXT)'; \ + b='timer_fairness_bug'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) timer_order.log: timer_order$(EXEEXT) @p='timer_order$(EXEEXT)'; \ diff -Nru ivykis-0.42/test/timer_fairness_bug.c ivykis-0.42.2/test/timer_fairness_bug.c --- ivykis-0.42/test/timer_fairness_bug.c 1970-01-01 00:00:00.000000000 +0000 +++ ivykis-0.42.2/test/timer_fairness_bug.c 2017-10-17 23:42:59.000000000 +0000 @@ -0,0 +1,63 @@ +/* + * ivykis, an event handling library + * Copyright (C) 2017 Lennert Buytenhek + * Dedicated to Marija Kulikova. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version + * 2.1 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 2.1 for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License version 2.1 along with this program; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#include +#include +#include + +static struct iv_timer timer1; +static struct iv_timer timer2; + +static void handler1(void *_t) +{ + if (iv_timer_registered(&timer2)) + iv_timer_unregister(&timer2); +} + +static void handler2(void *_t) +{ + if (iv_timer_registered(&timer1)) + iv_timer_unregister(&timer1); +} + +int main() +{ + alarm(5); + + iv_init(); + + iv_validate_now(); + + IV_TIMER_INIT(&timer1); + timer1.expires = iv_now; + timer1.handler = handler1; + iv_timer_register(&timer1); + + IV_TIMER_INIT(&timer2); + timer2.expires = iv_now; + timer2.handler = handler2; + iv_timer_register(&timer2); + + iv_main(); + + iv_deinit(); + + return 0; +}