Date: Mon, 20 Oct 2003 17:08:19 +0300 From: "Samy Al Bahra" <samy@kerneled.com> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/58279: Fix net/libnids build on -CURRENT Message-ID: 1066658886@beastie.freebsd.local Resent-Message-ID: <200310201410.h9KEAHad073928@freefall.freebsd.org>
| raw e-mail | index | archive | help
>Number: 58279 >Category: ports >Synopsis: Fix net/libnids build on -CURRENT >Confidential: no >Severity: critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Mon Oct 20 07:10:17 PDT 2003 >Closed-Date: >Last-Modified: >Originator: Samy Al Bahra >Release: FreeBSD 5.1-CURRENT i386 >Organization: Kerneled >Environment: System: FreeBSD beastie.freebsd.local 5.1-CURRENT FreeBSD 5.1-CURRENT #0: Wed Aug 20 18:35:24 AST 2003 samy@beastie.freebsd.local:/usr/src/sys/i386/compile/KERNELED i386 >Description: libnids does not build on 5.X due to multiline literals (which is depreciated in gcc 3.X). The attached patch fixes this issue in one of the files. >How-To-Repeat: Build on 5.X. >Fix: diff -ruN libnids/Makefile /tmp/libnids/Makefile --- libnids/Makefile Mon Oct 20 17:02:08 2003 +++ /tmp/libnids/Makefile Mon Oct 20 17:01:53 2003 @@ -22,10 +22,6 @@ .include <bsd.port.pre.mk> -.if ${OSVERSION} >= 501000 -BROKEN= "Does not compile" -.endif - do-install: ${INSTALL_DATA} ${WRKSRC}/src/nids.h ${PREFIX}/include ${INSTALL_DATA} ${WRKSRC}/src/libnids.a ${PREFIX}/lib diff -ruN libnids/files/patch-src::checksum.c /tmp/libnids/files/patch-src::checksum.c --- libnids/files/patch-src::checksum.c Thu Jan 1 03:00:00 1970 +++ /tmp/libnids/files/patch-src::checksum.c Mon Oct 20 17:01:40 2003 @@ -0,0 +1,203 @@ +--- src/checksum.c.orig Mon Oct 20 16:57:38 2003 ++++ src/checksum.c Mon Oct 20 17:01:34 2003 +@@ -23,68 +23,62 @@ + csum_partial(const u_char * buff, int len, u_int sum) + { + __asm__ ( +-/* "pushl %esi +- pushl %ebx +- movl 20(%esp),%eax # Function arg: u_int sum +- movl 16(%esp),%ecx # Function arg: int len +- movl 12(%esp),%esi # Function arg: u_char *buff*/ +- +- "testl $2, %%esi +- jz 2f +- subl $2, %%ecx +- jae 1f +- addl $2, %%ecx +- jmp 4f +-1: movw (%%esi), %%bx +- addl $2, %%esi +- addw %%bx, %%ax +- adcl $0, %%eax +-2: +- movl %%ecx, %%edx +- shrl $5, %%ecx +- jz 2f +- testl %%esi, %%esi +-1: movl (%%esi), %%ebx +- adcl %%ebx, %%eax +- movl 4(%%esi), %%ebx +- adcl %%ebx, %%eax +- movl 8(%%esi), %%ebx +- adcl %%ebx, %%eax +- movl 12(%%esi), %%ebx +- adcl %%ebx, %%eax +- movl 16(%%esi), %%ebx +- adcl %%ebx, %%eax +- movl 20(%%esi), %%ebx +- adcl %%ebx, %%eax +- movl 24(%%esi), %%ebx +- adcl %%ebx, %%eax +- movl 28(%%esi), %%ebx +- adcl %%ebx, %%eax +- lea 32(%%esi), %%esi +- dec %%ecx +- jne 1b +- adcl $0, %%eax +-2: movl %%edx, %%ecx +- andl $0x1c, %%edx +- je 4f +- shrl $2, %%edx +-3: adcl (%%esi), %%eax +- lea 4(%%esi), %%esi +- dec %%edx +- jne 3b +- adcl $0, %%eax +-4: andl $3, %%ecx +- jz 7f +- cmpl $2, %%ecx +- jb 5f +- movw (%%esi),%%cx +- leal 2(%%esi),%%esi +- je 6f +- shll $16,%%ecx +-5: movb (%%esi),%%cl +-6: addl %%ecx,%%eax +- adcl $0, %%eax +-7: " ++ "testl $2, %%esi\n"\ ++ "jz 2f\n"\ ++ "subl $2, %%ecx\n"\ ++ "jae 1f\n"\ ++ "addl $2, %%ecx\n"\ ++ "jmp 4f\n"\ ++"1: movw (%%esi), %%bx\n"\ ++" addl $2, %%esi\n"\ ++" addw %%bx, %%ax\n"\ ++" adcl $0, %%eax\n"\ ++"2:\n"\ ++" movl %%ecx, %%edx\n"\ ++" shrl $5, %%ecx\n"\ ++" jz 2f\n"\ ++" testl %%esi, %%esi\n"\ ++"1: movl (%%esi), %%ebx\n"\ ++" adcl %%ebx, %%eax\n"\ ++" movl 4(%%esi), %%ebx\n"\ ++" adcl %%ebx, %%eax\n"\ ++" movl 8(%%esi), %%ebx\n"\ ++" adcl %%ebx, %%eax\n"\ ++" movl 12(%%esi), %%ebx\n"\ ++" adcl %%ebx, %%eax\n"\ ++" movl 16(%%esi), %%ebx\n"\ ++" adcl %%ebx, %%eax\n"\ ++" movl 20(%%esi), %%ebx\n"\ ++" adcl %%ebx, %%eax\n"\ ++" movl 24(%%esi), %%ebx\n"\ ++" adcl %%ebx, %%eax\n"\ ++" movl 28(%%esi), %%ebx\n"\ ++" adcl %%ebx, %%eax\n"\ ++" lea 32(%%esi), %%esi\n"\ ++" dec %%ecx\n"\ ++" jne 1b\n"\ ++" adcl $0, %%eax\n"\ ++"2: movl %%edx, %%ecx\n"\ ++" andl $0x1c, %%edx\n"\ ++" je 4f\n"\ ++" shrl $2, %%edx\n"\ ++"3: adcl (%%esi), %%eax\n"\ ++" lea 4(%%esi), %%esi\n"\ ++" dec %%edx\n"\ ++" jne 3b\n"\ ++" adcl $0, %%eax\n"\ ++"4: andl $3, %%ecx\n"\ ++" jz 7f\n"\ ++" cmpl $2, %%ecx\n"\ ++" jb 5f\n"\ ++" movw (%%esi),%%cx\n"\ ++" leal 2(%%esi),%%esi\n"\ ++" je 6f\n"\ ++" shll $16,%%ecx\n"\ ++"5: movb (%%esi),%%cl\n"\ ++"6: addl %%ecx,%%eax\n"\ ++" adcl $0, %%eax\n"\ ++"7: " + : "=a"(sum) + : "0"(sum), "c"(len), "S"(buff) + : "bx", "dx"); +@@ -103,25 +97,24 @@ + { + u_int sum; + +- __asm__ __volatile__(" +- movl (%1), %0 +- subl $4, %2 +- jbe 2f +- addl 4(%1), %0 +- adcl 8(%1), %0 +- adcl 12(%1), %0 +-1: adcl 16(%1), %0 +- lea 4(%1), %1 +- decl %2 +- jne 1b +- adcl $0, %0 +- movl %0, %2 +- shrl $16, %0 +- addw %w2, %w0 +- adcl $0, %0 +- notl %0 +-2: +- " ++ __asm__ __volatile__( ++" movl (%1), %0\n"\ ++" subl $4, %2\n"\ ++" jbe 2f\n"\ ++" addl 4(%1), %0\n"\ ++" adcl 8(%1), %0\n"\ ++" adcl 12(%1), %0\n"\ ++"1: adcl 16(%1), %0\n"\ ++" lea 4(%1), %1\n"\ ++" decl %2\n"\ ++" jne 1b\n"\ ++" adcl $0, %0\n"\ ++" movl %0, %2\n"\ ++" shrl $16, %0\n"\ ++" addw %w2, %w0\n"\ ++" adcl $0, %0\n"\ ++" notl %0\n"\ ++"2:\n" + /* + Since the input registers which are loaded with iph and ipl + are modified, we must also specify them as outputs, or gcc +@@ -137,10 +130,9 @@ + static inline u_int + csum_fold(u_int sum) + { +- __asm__(" +- addl %1, %0 +- adcl $0xffff, %0 +- " ++ __asm__( ++" addl %1, %0\n"\ ++" adcl $0xffff, %0\n" + : "=r" (sum) + : "r" (sum << 16), "0" (sum & 0xffff0000) + ); +@@ -155,12 +147,11 @@ + csum_tcpudp_magic(u_int saddr, u_int daddr, u_short len, + u_short proto, u_int sum) + { +- __asm__(" +- addl %1, %0 +- adcl %2, %0 +- adcl %3, %0 +- adcl $0, %0 +- " ++ __asm__( ++" addl %1, %0\n"\ ++" adcl %2, %0\n"\ ++" adcl %3, %0\n"\ ++" adcl $0, %0\n" + : "=r" (sum) + : "g" (daddr), "g"(saddr), "g"((ntohs(len) << 16) + proto * 256), "0"(sum)); + return (csum_fold(sum)); >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1066658886>