view auto/lib/md5/make @ 3755:76e3a93821b1

fix race condition if during reconfiguration two cache managers try to delete old inactive entries: one of them removes a entry just locked by other manager from the queue and the rbtree as long inactive entry, causes the latter manager to segfault leaving cache mutex locked, the bug has been introduced in r3727
author Igor Sysoev <igor@sysoev.ru>
date Thu, 02 Sep 2010 14:31:47 +0000
parents ecdc41bf2047
children d620f497c50f
line wrap: on
line source


# Copyright (C) Igor Sysoev


case "$NGX_CC_NAME" in

    msvc*)
        ngx_makefile=makefile.msvc
        ngx_opt="CPU_OPT=\"$CPU_OPT\" LIBC=$LIBC MD5_ASM=$MD5_ASM"
        ngx_md5="MD5=\"$MD5\""
    ;;

    owc*)
        ngx_makefile=makefile.owc
        ngx_opt="CPU_OPT=\"$CPU_OPT\""
        ngx_md5=`echo MD5=\"$MD5\" | sed -e "s/\//$ngx_regex_dirsep/g"`
    ;;

    bcc)
        ngx_makefile=makefile.bcc
        ngx_opt="-DCPU_OPT=\"$CPU_OPT\" -DMD5_ASM=$MD5_ASM"
        ngx_md5=`echo \-DMD5=\"$MD5\" | sed -e "s/\//$ngx_regex_dirsep/g"`
    ;;

esac


done=NO


case "$NGX_PLATFORM" in

    win32)
        cat << END                                        >> $NGX_MAKEFILE

`echo "$MD5/md5.lib:	$NGX_MAKEFILE" | sed -e "s/\//$ngx_regex_dirsep/g"`
	\$(MAKE) -f auto/lib/md5/$ngx_makefile $ngx_opt $ngx_md5

END

        done=YES
    ;;

    SunOS:*:i86pc)
        if [ $MD5_ASM = YES ]; then

            cat << END                                        >> $NGX_MAKEFILE

$MD5/libmd5.a:	$NGX_MAKEFILE
	cd $MD5 \\
	&& \$(MAKE) CFLAGS="$MD5_OPT -DSOL -DMD5_ASM -DL_ENDIAN" \\
		CC="\$(CC)" CPP="\$(CPP)" \\
		MD5_ASM_OBJ=asm/mx86-sol.o clean libmd5.a

END

            done=YES
        fi
    ;;

    # FreeBSD: i386
    # Linux: i686

    *:i386 | *:i686)
        if [ $MD5_ASM = YES ]; then

            cat << END                                        >> $NGX_MAKEFILE

$MD5/libmd5.a:	$NGX_MAKEFILE
	cd $MD5 \\
	&& \$(MAKE) CFLAGS="$MD5_OPT -DELF -DMD5_ASM -DL_ENDIAN" \\
		CC="\$(CC)" CPP="\$(CPP)" \\
		MD5_ASM_OBJ=asm/mx86-elf.o clean libmd5.a

END

            done=YES
        fi
    ;;

esac


if [ $done = NO ]; then

    cat << END                                                >> $NGX_MAKEFILE

$MD5/libmd5.a:	$NGX_MAKEFILE
	cd $MD5 \\
	&& \$(MAKE) CFLAGS="$MD5_OPT" \\
		CC="\$(CC)" MD5_ASM_OBJ= clean libmd5.a

END

fi