From owner-freebsd-current@FreeBSD.ORG Fri Mar 27 09:44:06 2015 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id DAF5C334 for ; Fri, 27 Mar 2015 09:44:06 +0000 (UTC) Received: from asp.reflexion.net (outbound-242.asp.reflexion.net [69.84.129.242]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9327926D for ; Fri, 27 Mar 2015 09:44:05 +0000 (UTC) Received: (qmail 23029 invoked from network); 27 Mar 2015 09:44:04 -0000 Received: from unknown (HELO mail-cs-02.app.dca.reflexion.local) (10.81.19.2) by 0 (rfx-qmail) with SMTP; 27 Mar 2015 09:44:04 -0000 Received: by mail-cs-02.app.dca.reflexion.local (Reflexion email security v7.40.1) with SMTP; Fri, 27 Mar 2015 05:44:04 -0400 (EDT) Received: (qmail 26898 invoked from network); 27 Mar 2015 09:44:04 -0000 Received: from unknown (HELO iron2.pdx.net) (69.64.224.71) by 0 (rfx-qmail) with (DHE-RSA-AES256-SHA encrypted) SMTP; 27 Mar 2015 09:44:04 -0000 X-No-Relay: not in my network X-No-Relay: not in my network X-No-Relay: not in my network Received: from [192.168.1.8] (c-67-189-19-145.hsd1.or.comcast.net [67.189.19.145]) by iron2.pdx.net (Postfix) with ESMTPSA id A51AE1C43A8; Fri, 27 Mar 2015 02:44:02 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\)) Subject: 11.0-CURRENT: BIO_F_DGRAM_SCTP_WRITE, /head/crypto/openssl/crypto/bio/bio_err.c -r280297 vs. updating to head snaphot -r280598 From: Mark Millard In-Reply-To: <24B7C687-9147-42F1-AE49-92F93DC85AA8@dsl-only.net> Date: Fri, 27 Mar 2015 02:44:02 -0700 Content-Transfer-Encoding: quoted-printable Message-Id: <2D2B8572-425D-42EC-AD9D-8975E9B9CBFA@dsl-only.net> References: <24B7C687-9147-42F1-AE49-92F93DC85AA8@dsl-only.net> To: freebsd-current@freebsd.org, jkim@FreeBSD.org X-Mailer: Apple Mail (2.2070.6) X-Mailman-Approved-At: Fri, 27 Mar 2015 11:26:49 +0000 Cc: FreeBSD PowerPC ML X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Mar 2015 09:44:06 -0000 Basic context: # freebsd-version -ku; uname -apKU 11.0-CURRENT 11.0-CURRENT FreeBSD FBSDG5C0 11.0-CURRENT FreeBSD 11.0-CURRENT #1 r279514M: Sat Mar = 21 05:15:23 PDT 2015 = root@FBSDG5C0:/usr/obj/usr/srcC/sys/GENERIC64vtsc-NODEBUG powerpc = powerpc64 1100062 1100062 The problem: Summary of the details that are listed later. All of the following = exist: > /usr/src/crypto/openssl/crypto/bio/bio.h > /usr/obj/usr/src/tmp/usr/include/openssl/bio.h > /usr/include/openssl/bio.h The first two can be newer than the last during buildworld. The buildworld compile of /head/crypto/openssl/crypto/bio/bio_err.c from = an updated /usr/src can/does end up using the last instead of one of the = first two, at least for the powerpc64-xtoolchain-gcc style of buildworld = activity that I am trying. The recent addition of BIO_F_DGRAM_SCTP_WRITE ends up with its = definition missing because of this: during the build = /usr/include/openssl/bio.h ends up being the file included and the = compile fails from the missing additional definition. Either the #include paths in /head/crypto/openssl/crypto/bio/bio_err.c = or the command line arguments should force the = /usr/obj/usr/src/tmp/usr/include/openssl/bio.h (or = /usr/src/crypto/openssl/crypto/bio/bio.h ) vintage file to be found. The = bio.h relevant includes are shown below... > #include > #include > #include More than bio.h might have such issues since there is an openssl/err.h = include path in /head/crypto/openssl/crypto/bio/bio_err.c . I have not checked for other .c files with similar issues for = usage during buildworld. The problem details: /head/crypto/openssl/crypto/bio/bio_err.c -r280297 added: > {ERR_FUNC(BIO_F_DGRAM_SCTP_WRITE), "DGRAM_SCTP_WRITE"}, and head (20150325 r280598) contains it. But the BIO_F_DGRAM_SCTP_WRITE reference blocks buildworld (for at least = /usr/local/bin/powerpc64-portbld-freebsd11.0-gcc = (powerpc64-xtoolchain=3Dgcc) use): > /usr/local/bin/powerpc64-portbld-freebsd11.0-gcc -fpic -DPIC -O2 = -pipe -DTERMIOS -DANSI_SOURCE = -I/usr/src/secure/lib/libcrypto/../../../crypto/openssl = -I/usr/src/secure/lib/libcrypto/../../../crypto/openssl/crypto = -I/usr/obj/usr/src/secure/lib/libcrypto -DOPENSSL_THREADS -DDSO_DLFCN = -DHAVE_DLFCN_H = -I/usr/src/secure/lib/libcrypto/../../../crypto/openssl/crypto/asn1 = -I/usr/src/secure/lib/libcrypto/../../../crypto/openssl/crypto/evp = -I/usr/src/secure/lib/libcrypto/../../../crypto/openssl/crypto/modes = -std=3Dgnu89 -fstack-protector -Wno-pointer-sign -c = /usr/src/secure/lib/libcrypto/../../../crypto/openssl/crypto/bio/bio_err.c= -o bio_err.So > In file included from = /usr/src/secure/lib/libcrypto/../../../crypto/openssl/crypto/bio/bio_err.c= :63:0: > = /usr/src/secure/lib/libcrypto/../../../crypto/openssl/crypto/bio/bio_err.c= :99:15: error: 'BIO_F_DGRAM_SCTP_WRITE' undeclared here (not in a = function) > {ERR_FUNC(BIO_F_DGRAM_SCTP_WRITE), "DGRAM_SCTP_WRITE"}, > ^ Looking to see where usage and definitions might be in /usr/src for = -r280598 ... > # pwd > /usr/src > $ find . \( -type d -name .svn -prune \) -or \( -type f -exec grep = BIO_F_DGRAM_SCTP_WRITE {} \; -print \) | more > # define BIO_F_DGRAM_SCTP_WRITE 133 > ./crypto/openssl/crypto/bio/bio.h > BIOerr(BIO_F_DGRAM_SCTP_WRITE, ERR_R_MALLOC_ERROR); > ./crypto/openssl/crypto/bio/bss_dgram.c > {ERR_FUNC(BIO_F_DGRAM_SCTP_WRITE), "DGRAM_SCTP_WRITE"}, > ./crypto/openssl/crypto/bio/bio_err.c And looking at the list of includes in = /head/crypto/openssl/crypto/bio/bio_err.c -r280297 shows: > #include > #include > #include That there was no complaint about bio.h being missing suggests that a = was found but did not contain a BIO_F_DGRAM_SCTP_WRITE = definition: so a different one than a copy of what the above find/grep = reported. Using a find to report other bio.h files shows: > # find / \( -type d -name .svn -prune \) -or \( -type f -name bio.h = -print \) | more > /usr/src/crypto/openssl/crypto/bio/bio.h > /usr/src/sys/sys/bio.h > /usr/obj/usr/src/tmp/usr/include/openssl/bio.h > /usr/include/openssl/bio.h > /usr/include/sys/bio.h (Ignoring .../sys/bio.h as distinct by content and by path prefix...) The diff of /usr/obj/usr/src/tmp/usr/include/openssl/bio.h and = /usr/include/openssl/bio.h shows the problem if the wrong file is found = and used: > diff -w /usr/src/crypto/openssl/crypto/bio/bio.h = /usr/include/openssl/bio.h | less > ... > 797,798c775 > < /* > < * The following lines are auto generated by the script mkerr.pl. = Any changes > --- > > /* The following lines are auto generated by the script mkerr.pl. = Any changes > 832d808 > < # define BIO_F_DGRAM_SCTP_WRITE 133 Context details: > make -j 8 CROSS_TOOLCHAIN=3Dpowerpc64-gcc=20 > WITHOUT_CLANG_BOOTSTRAP=3D WITHOUT_CLANG=3D WITHOUT_CLANG_IS_CC=3D \ > WITHOUT_LLDB=3D \ > WITH_GCC_BOOTSTRAP=3D WITH_GCC=3D WITHOUT_GNUCXX=3D \ > WITHOUT_BOOT=3D WITHOUT_LIB32=3D \ > buildworld buildkernel \ > KERNCONF=3DGENERIC64vtsc-NODEBUG > TARGET=3Dpowerpc TARGET_ARCH=3Dpowerpc64 > # svnlite info /usr/src > Path: . > Working Copy Root Path: /usr/src > URL: https://svn0.us-west.freebsd.org/base/head > Relative URL: ^/head > Repository Root: https://svn0.us-west.freebsd.org/base > Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f > Revision: 280615 > Node Kind: directory > Schedule: normal > Last Changed Author: hselasky > Last Changed Rev: 280598 > Last Changed Date: 2015-03-25 06:32:27 -0700 (Wed, 25 Mar 2015) signals.h and pthread.h have been updated to more recent than -r280598 = in order to avoid the __nonnull issues that exist as of -r280598. > # svnlite st /usr/src --no-ignore > ? /usr/src/.snap > ? /usr/src/restoresymtable > M /usr/src/sys/ddb/db_main.c > M /usr/src/sys/ddb/db_script.c > ? /usr/src/sys/powerpc/conf/GENERIC64vtsc > ? /usr/src/sys/powerpc/conf/GENERIC64vtsc-NODEBUG > ? /usr/src/sys/powerpc/conf/GENERICvtsc > ? /usr/src/sys/powerpc/conf/GENERICvtsc-NODEBUG > M /usr/src/sys/powerpc/ofw/ofw_machdep.c > M /usr/src/sys/powerpc/ofw/ofwcall64.S (The .c/.S changes are tied to a PowerMac-G5-specific boot-problem fix = and getting information from early boot failures if I get any more. The = GENERIC's remove ps3 in order to have both vt and sc at the same = time.) > # more /etc/src.conf=20 > NO_WERROR=3D > WITH_LIBCPLUSPLUS=3D > CC=3D/usr/local/bin/powerpc64-portbld-freebsd11.0-gcc > CXX=3D/usr/local/bin/powerpc64-portbld-freebsd11.0-g++ > CPP=3D/usr/local/bin/powerpc64-portbld-freebsd11.0-cpp > CROSS_BINUTILS_PREFIX=3D/usr/local/powerpc64-freebsd/bin/ > X_COMPILER_TYPE=3Dgcc > CXXFLAGS+=3D-I/usr/obj/usr/srcC/tmp/usr/include/c++/v1/. -std=3Dgnu++11 = -L/usr/obj/usr/srcC/lib/libc++/. > CXXFLAGS+=3D-I/usr/include/c++/v1/. -std=3Dgnu++11 -L/usr/lib/. (The above and just below experiments with mostly(?) avoiding use of gcc = 4.2.1, even for CC/CXX/CPP contexts.) > # ls -FPal /usr/bin/g[+c]* > lrwxr-xr-x 1 root wheel 48 Mar 20 02:03 /usr/bin/g++@ -> = /usr/local/bin/powerpc64-portbld-freebsd11.0-g++ > lrwxr-xr-x 1 root wheel 48 Mar 19 04:20 /usr/bin/gcc@ -> = /usr/local/bin/powerpc64-portbld-freebsd11.0-gcc > # more /etc/make.conf > WRKDIRPREFIX=3D/usr/obj/portswork > #WITH_DEBUG=3D > MALLOC_PRODUCTION=3D =3D=3D=3D Mark Millard markmi at dsl-only.net