Summary: | [Patch] security/libgcrypt Fix build with Clang | ||
---|---|---|---|
Product: | Ports & Packages | Reporter: | Koop Mast <kwm> |
Component: | Individual Port(s) | Assignee: | Koop Mast <kwm> |
Status: | Closed FIXED | ||
Severity: | Affects Only Me | ||
Priority: | Normal | ||
Version: | Latest | ||
Hardware: | Any | ||
OS: | Any |
Description
Koop Mast
![]() ![]() Responsible Changed From-To: freebsd-ports-bugs->kwm Submitter has GNATS access (via the GNATS Auto Assign Tool) Maintainer of security/libgcrypt, Please note that PR ports/151349 has just been submitted. If it contains a patch for an upgrade, an enhancement or a bug fix you agree on, reply to this email stating that you approve the patch and a committer will take care of it. The full text of the PR can be found at: http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/151349 -- Edwin Groothuis via the GNATS Auto Assign Tool edwin@FreeBSD.org State Changed From-To: open->feedback Awaiting maintainers feedback (via the GNATS Auto Assign Tool) Hi, Thanks for the patch. I checkt it under FreeBSD 9.0-CURRENT/amd64 (as of 2010-10-12) with > FreeBSD clang version 2.8 (tags/RELEASE_28 115870) 20101007 > Target: x86_64-undermydesk-freebsd9.0 USE_CSTD=3Dgnu89 seems to work okay here. But, I don't see any difference with or without the patch against = mpi/longlong.h. Is it specific to a particular version of clang? On 10/10/2010, at 5:50, Edwin Groothuis wrote: > Please note that PR ports/151349 has just been submitted. > The full text of the PR can be found at: > http://www.freebsd.org/cgi/query-pr.cgi?pr=3Dports/151349 --=20 Hirohisa Yamaguchi <umq@ueo.co.jp>= Hmm seems my reply didn't make it to GNATS, let me do a recap. The mpi/longlong.h patch is needed for i386. Without this patch clang trows the error below. A similar patch was committed to head in the follow revision: http://svn.freebsd.org/viewvc/base/head/contrib/gcc/longlong.h?r1=169690&r2=211537 Also the use of -fheinous-gnu-extensions is discouraged, because it might be gone without any notice. -Koop --------------------------------------------------------------------------- mpih-div.c:84:3: error: invalid use of a cast in a inline asm context requiring an l-value: remove the cast or build with -fheinous-gnu-extensions udiv_qrnnd(divisor_limb_inverted, dummy, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mpih-div.c:84:14: note: instantiated from: udiv_qrnnd(divisor_limb_inverted, dummy, ^ Hi, On 10/19/2010, at 8:13, Koop Mast wrote: >> But, I don't see any difference with or without the patch against >> mpi/longlong.h. >> Is it specific to a particular version of clang? >=20 > No it doesn't have anything to do with clang version, it depends on = the > arch your building libgcrypt on. The longlong.h patch is needed for > i386. When trying to compile libgcrypt on i386 without the patch clang > will output the following (only the first few lines). I got i386 box today, and got it. I attach a patch with slight change in LICENSE block. --=20 Hirohisa Yamaguchi <umq@ueo.co.jp> =0C=0C=0C diff -Npru ports.orig/security/libgcrypt/Makefile = ports/security/libgcrypt/Makefile --- ports.orig/security/libgcrypt/Makefile 2010-07-27 = 10:24:39.000000000 +0900 +++ ports/security/libgcrypt/Makefile 2010-11-01 23:21:16.000000000 = +0900 @@ -15,10 +15,12 @@ COMMENT=3D General purpose crypto library=20 =20 LIB_DEPENDS=3D gpg-error.0:${PORTSDIR}/security/libgpg-error =20 -LICENSE=3D GPLv2 -LICENSE_FILE=3D ${WRKSRC}/COPYING +LICENSE=3D GPLv2 LGPL21 +LICENSE_FILE=3D ${WRKSRC}/COPYING ${WRKSRC}/COPYING.LIB +LICENSE_COMB=3D multi USE_BZIP2=3D yes USE_AUTOTOOLS=3D libtool:22 +USE_CSTD=3D gnu89 GNU_CONFIGURE=3D yes CONFIGURE_ENV=3D MAKEINFO=3D"makeinfo --no-split" USE_LDCONFIG=3D yes diff -Npru ports.orig/security/libgcrypt/distinfo = ports/security/libgcrypt/distinfo --- ports.orig/security/libgcrypt/distinfo 2010-07-27 = 10:24:39.000000000 +0900 +++ ports/security/libgcrypt/distinfo 2010-11-01 23:21:16.000000000 = +0900 @@ -1,3 +1,2 @@ -MD5 (libgcrypt-1.4.6.tar.bz2) =3D dbf99425a4fe9217c84ce3a35d938634 SHA256 (libgcrypt-1.4.6.tar.bz2) =3D = 3e4b30da6b357b565333d0222133b64a0414be99ba72733081165c8ea9bc6b85 SIZE (libgcrypt-1.4.6.tar.bz2) =3D 1151877 diff -Npru ports.orig/security/libgcrypt/files/patch-mpi-longlong.h = ports/security/libgcrypt/files/patch-mpi-longlong.h --- ports.orig/security/libgcrypt/files/patch-mpi-longlong.h = 1970-01-01 09:00:00.000000000 +0900 +++ ports/security/libgcrypt/files/patch-mpi-longlong.h 2010-11-01 = 23:21:16.000000000 +0900 @@ -0,0 +1,42 @@ +--- ./mpi/longlong.h.orig 2010-02-22 19:04:43.000000000 +0900 ++++ ./mpi/longlong.h 2010-11-01 18:25:34.000000000 +0900 +@@ -437,8 +437,8 @@ + #define add_ssaaaa(sh, sl, ah, al, bh, bl) \ + __asm__ ("addl %5,%1\n" = \ + "adcl %3,%0" = \ +- : "=3Dr" ((USItype)(sh)), = \ +- "=3D&r" ((USItype)(sl)) = \ ++ : "=3Dr" (sh), = \ ++ "=3D&r" (sl) = \ + : "%0" ((USItype)(ah)), = \ + "g" ((USItype)(bh)), = \ + "%1" ((USItype)(al)), = \ +@@ -446,22 +446,22 @@ + #define sub_ddmmss(sh, sl, ah, al, bh, bl) \ + __asm__ ("subl %5,%1\n" = \ + "sbbl %3,%0" = \ +- : "=3Dr" ((USItype)(sh)), = \ +- "=3D&r" ((USItype)(sl)) = \ ++ : "=3Dr" (sh), = \ ++ "=3D&r" (sl) = \ + : "0" ((USItype)(ah)), = \ + "g" ((USItype)(bh)), = \ + "1" ((USItype)(al)), = \ + "g" ((USItype)(bl))) + #define umul_ppmm(w1, w0, u, v) \ + __asm__ ("mull %3" = \ +- : "=3Da" ((USItype)(w0)), = \ +- "=3Dd" ((USItype)(w1)) = \ ++ : "=3Da" (w0), = \ ++ "=3Dd" (w1) = \ + : "%0" ((USItype)(u)), = \ + "rm" ((USItype)(v))) + #define udiv_qrnnd(q, r, n1, n0, d) \ + __asm__ ("divl %4" = \ +- : "=3Da" ((USItype)(q)), = \ +- "=3Dd" ((USItype)(r)) = \ ++ : "=3Da" (q), = \ ++ "=3Dd" (r) = \ + : "0" ((USItype)(n0)), = \ + "1" ((USItype)(n1)), = \ + "rm" ((USItype)(d))) Hi, At Tue, 2 Nov 2010 00:48:17 +0900, Yamaguchi Hirohisa wrote: > I attach a patch with slight change in LICENSE block. The patch sent previously looks corrupted. attaching it again. -- Hirohisa Yamaguchi <umq@ueo.co.jp> diff -Npru ports.orig/security/libgcrypt/Makefile ports/security/libgcrypt/Makefile --- ports.orig/security/libgcrypt/Makefile 2010-07-27 10:24:39.000000000 +0900 +++ ports/security/libgcrypt/Makefile 2010-11-01 23:21:16.000000000 +0900 @@ -15,10 +15,12 @@ COMMENT= General purpose crypto library LIB_DEPENDS= gpg-error.0:${PORTSDIR}/security/libgpg-error -LICENSE= GPLv2 -LICENSE_FILE= ${WRKSRC}/COPYING +LICENSE= GPLv2 LGPL21 +LICENSE_FILE= ${WRKSRC}/COPYING ${WRKSRC}/COPYING.LIB +LICENSE_COMB= multi USE_BZIP2= yes USE_AUTOTOOLS= libtool:22 +USE_CSTD= gnu89 GNU_CONFIGURE= yes CONFIGURE_ENV= MAKEINFO="makeinfo --no-split" USE_LDCONFIG= yes diff -Npru ports.orig/security/libgcrypt/distinfo ports/security/libgcrypt/distinfo --- ports.orig/security/libgcrypt/distinfo 2010-07-27 10:24:39.000000000 +0900 +++ ports/security/libgcrypt/distinfo 2010-11-01 23:21:16.000000000 +0900 @@ -1,3 +1,2 @@ -MD5 (libgcrypt-1.4.6.tar.bz2) = dbf99425a4fe9217c84ce3a35d938634 SHA256 (libgcrypt-1.4.6.tar.bz2) = 3e4b30da6b357b565333d0222133b64a0414be99ba72733081165c8ea9bc6b85 SIZE (libgcrypt-1.4.6.tar.bz2) = 1151877 diff -Npru ports.orig/security/libgcrypt/files/patch-mpi-longlong.h ports/security/libgcrypt/files/patch-mpi-longlong.h --- ports.orig/security/libgcrypt/files/patch-mpi-longlong.h 1970-01-01 09:00:00.000000000 +0900 +++ ports/security/libgcrypt/files/patch-mpi-longlong.h 2010-11-01 23:21:16.000000000 +0900 @@ -0,0 +1,42 @@ +--- ./mpi/longlong.h.orig 2010-02-22 19:04:43.000000000 +0900 ++++ ./mpi/longlong.h 2010-11-01 18:25:34.000000000 +0900 +@@ -437,8 +437,8 @@ + #define add_ssaaaa(sh, sl, ah, al, bh, bl) \ + __asm__ ("addl %5,%1\n" \ + "adcl %3,%0" \ +- : "=r" ((USItype)(sh)), \ +- "=&r" ((USItype)(sl)) \ ++ : "=r" (sh), \ ++ "=&r" (sl) \ + : "%0" ((USItype)(ah)), \ + "g" ((USItype)(bh)), \ + "%1" ((USItype)(al)), \ +@@ -446,22 +446,22 @@ + #define sub_ddmmss(sh, sl, ah, al, bh, bl) \ + __asm__ ("subl %5,%1\n" \ + "sbbl %3,%0" \ +- : "=r" ((USItype)(sh)), \ +- "=&r" ((USItype)(sl)) \ ++ : "=r" (sh), \ ++ "=&r" (sl) \ + : "0" ((USItype)(ah)), \ + "g" ((USItype)(bh)), \ + "1" ((USItype)(al)), \ + "g" ((USItype)(bl))) + #define umul_ppmm(w1, w0, u, v) \ + __asm__ ("mull %3" \ +- : "=a" ((USItype)(w0)), \ +- "=d" ((USItype)(w1)) \ ++ : "=a" (w0), \ ++ "=d" (w1) \ + : "%0" ((USItype)(u)), \ + "rm" ((USItype)(v))) + #define udiv_qrnnd(q, r, n1, n0, d) \ + __asm__ ("divl %4" \ +- : "=a" ((USItype)(q)), \ +- "=d" ((USItype)(r)) \ ++ : "=a" (q), \ ++ "=d" (r) \ + : "0" ((USItype)(n0)), \ + "1" ((USItype)(n1)), \ + "rm" ((USItype)(d))) kwm 2010-11-02 12:18:54 UTC FreeBSD ports repository Modified files: security/libgcrypt Makefile distinfo Added files: security/libgcrypt/files patch-mpi-longlong.h Log: Fix linking with clang, and give longlong.h a simular treatment like was done in 9-current so clang can build it on i386. Update LICENSE block, and remove md5 sum. PR: ports/151349 Submitted by: myself Approved by: Yamaguchi Hirohisa <umq@ueo.co.jp> (maintainer) Revision Changes Path 1.48 +4 -2 ports/security/libgcrypt/Makefile 1.19 +0 -1 ports/security/libgcrypt/distinfo 1.1 +42 -0 ports/security/libgcrypt/files/patch-mpi-longlong.h (new) _______________________________________________ cvs-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/cvs-all To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org" State Changed From-To: feedback->closed Committed with your additions, Thanks! Sorry If I got your family and given name backwards. The two lastest replys, had them switched around. So I just took the last one. |