From owner-p4-projects@FreeBSD.ORG Fri Oct 31 18:54:18 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 537851065675; Fri, 31 Oct 2008 18:54:18 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 152EF106567D for ; Fri, 31 Oct 2008 18:54:18 +0000 (UTC) (envelope-from peter-gmail@wemm.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 038038FC23 for ; Fri, 31 Oct 2008 18:54:18 +0000 (UTC) (envelope-from peter-gmail@wemm.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id m9VIsHc4092327 for ; Fri, 31 Oct 2008 18:54:17 GMT (envelope-from peter-gmail@wemm.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id m9VIsH8r092325 for perforce@freebsd.org; Fri, 31 Oct 2008 18:54:17 GMT (envelope-from peter-gmail@wemm.org) Date: Fri, 31 Oct 2008 18:54:17 GMT Message-Id: <200810311854.m9VIsH8r092325@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter-gmail@wemm.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 152287 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Oct 2008 18:54:18 -0000 http://perforce.freebsd.org/chv.cgi?CH=152287 Change 152287 by peter@peter_overcee on 2008/10/31 18:53:56 We've long been remiss about the END() macro matching the corresponding ENTRY() macro. This is what sets the ELF function size attribute. It turns out that valgrind cares and that this is not negotiable. Fix it at the source. Affected files ... .. //depot/projects/hammer/lib/libc/amd64/SYS.h#10 edit .. //depot/projects/hammer/lib/libc/amd64/gen/_setjmp.S#9 edit .. //depot/projects/hammer/lib/libc/amd64/gen/fabs.S#7 edit .. //depot/projects/hammer/lib/libc/amd64/gen/modf.S#8 edit .. //depot/projects/hammer/lib/libc/amd64/gen/rfork_thread.S#4 edit .. //depot/projects/hammer/lib/libc/amd64/gen/setjmp.S#11 edit .. //depot/projects/hammer/lib/libc/amd64/gen/sigsetjmp.S#11 edit .. //depot/projects/hammer/lib/libc/amd64/stdlib/div.S#4 edit .. //depot/projects/hammer/lib/libc/amd64/stdlib/ldiv.S#4 edit .. //depot/projects/hammer/lib/libc/amd64/stdlib/lldiv.S#2 edit .. //depot/projects/hammer/lib/libc/amd64/string/bcmp.S#4 edit .. //depot/projects/hammer/lib/libc/amd64/string/bcopy.S#4 edit .. //depot/projects/hammer/lib/libc/amd64/string/bzero.S#4 edit .. //depot/projects/hammer/lib/libc/amd64/string/memcmp.S#4 edit .. //depot/projects/hammer/lib/libc/amd64/string/memset.S#4 edit .. //depot/projects/hammer/lib/libc/amd64/string/strcat.S#4 edit .. //depot/projects/hammer/lib/libc/amd64/string/strcmp.S#4 edit .. //depot/projects/hammer/lib/libc/amd64/string/strcpy.S#5 edit .. //depot/projects/hammer/lib/libc/amd64/sys/brk.S#10 edit .. //depot/projects/hammer/lib/libc/amd64/sys/exect.S#9 edit .. //depot/projects/hammer/lib/libc/amd64/sys/getcontext.S#2 edit .. //depot/projects/hammer/lib/libc/amd64/sys/pipe.S#9 edit .. //depot/projects/hammer/lib/libc/amd64/sys/ptrace.S#8 edit .. //depot/projects/hammer/lib/libc/amd64/sys/reboot.S#7 edit .. //depot/projects/hammer/lib/libc/amd64/sys/sbrk.S#8 edit .. //depot/projects/hammer/lib/libc/amd64/sys/setlogin.S#9 edit .. //depot/projects/hammer/lib/libc/amd64/sys/vfork.S#8 edit Differences ... ==== //depot/projects/hammer/lib/libc/amd64/SYS.h#10 (text+ko) ==== @@ -43,13 +43,15 @@ .weak CNAME(__CONCAT(_,x)); \ .set CNAME(__CONCAT(_,x)),CNAME(__CONCAT(__sys_,x)); \ mov __CONCAT($SYS_,x),%rax; KERNCALL; jb 2f; ret; \ - 2: movq PIC_GOT(HIDENAME(cerror)),%rcx; jmp *%rcx + 2: movq PIC_GOT(HIDENAME(cerror)),%rcx; jmp *%rcx; \ + END(__CONCAT(__sys_,x)) #define PSEUDO(x) ENTRY(__CONCAT(__sys_,x)); \ .weak CNAME(__CONCAT(_,x)); \ .set CNAME(__CONCAT(_,x)),CNAME(__CONCAT(__sys_,x)); \ mov __CONCAT($SYS_,x),%rax; KERNCALL; jb 2f; ret ; \ - 2: movq PIC_GOT(HIDENAME(cerror)),%rcx; jmp *%rcx + 2: movq PIC_GOT(HIDENAME(cerror)),%rcx; jmp *%rcx; \ + END(__CONCAT(__sys_,x)) #else #define RSYSCALL(x) ENTRY(__CONCAT(__sys_,x)); \ .weak CNAME(x); \ @@ -57,13 +59,15 @@ .weak CNAME(__CONCAT(_,x)); \ .set CNAME(__CONCAT(_,x)),CNAME(__CONCAT(__sys_,x)); \ mov __CONCAT($SYS_,x),%rax; KERNCALL; jb 2f; ret; \ - 2: jmp HIDENAME(cerror) + 2: jmp HIDENAME(cerror); \ + END(__CONCAT(__sys_,x)) #define PSEUDO(x) ENTRY(__CONCAT(__sys_,x)); \ .weak CNAME(__CONCAT(_,x)); \ .set CNAME(__CONCAT(_,x)),CNAME(__CONCAT(__sys_,x)); \ mov __CONCAT($SYS_,x),%rax; KERNCALL; jb 2f; ret; \ - 2: jmp HIDENAME(cerror) + 2: jmp HIDENAME(cerror); \ + END(__CONCAT(__sys_,x)) #endif #define KERNCALL movq %rcx, %r10; syscall ==== //depot/projects/hammer/lib/libc/amd64/gen/_setjmp.S#9 (text+ko) ==== @@ -61,6 +61,7 @@ stmxcsr 68(%rax) /* and mxcsr */ xorq %rax,%rax ret +END(_setjmp) .weak CNAME(_longjmp) .set CNAME(_longjmp),CNAME(___longjmp) @@ -90,3 +91,4 @@ incq %rax 1: movq %rcx,0(%rsp) ret +END(___longjmp) ==== //depot/projects/hammer/lib/libc/amd64/gen/fabs.S#7 (text+ko) ==== @@ -37,6 +37,7 @@ movsd signbit(%rip), %xmm0 andnpd %xmm1, %xmm0 ret +END(fabs) .data signbit: ==== //depot/projects/hammer/lib/libc/amd64/gen/modf.S#8 (text+ko) ==== @@ -86,3 +86,4 @@ movsd -8(%rsp),%xmm0 ret +END(modf) ==== //depot/projects/hammer/lib/libc/amd64/gen/rfork_thread.S#4 (text+ko) ==== @@ -99,3 +99,4 @@ #else jmp HIDENAME(cerror) #endif +END(rfork_thread) ==== //depot/projects/hammer/lib/libc/amd64/gen/setjmp.S#11 (text+ko) ==== @@ -70,6 +70,7 @@ stmxcsr 68(%rcx) /* and mxcsr */ xorq %rax,%rax ret +END(setjmp) .weak CNAME(longjmp) .set CNAME(longjmp),CNAME(__longjmp) @@ -108,3 +109,4 @@ incq %rax 1: movq %rcx,0(%rsp) ret +END(__longjmp) ==== //depot/projects/hammer/lib/libc/amd64/gen/sigsetjmp.S#11 (text+ko) ==== @@ -77,6 +77,7 @@ fnstcw 64(%rcx) /* 8; fpu cw */ xorq %rax,%rax ret +END(sigsetjmp) .weak CNAME(siglongjmp) .set CNAME(siglongjmp),CNAME(__siglongjmp) @@ -109,3 +110,4 @@ incq %rax 1: movq %rcx,0(%rsp) ret +END(__siglongjmp) ==== //depot/projects/hammer/lib/libc/amd64/stdlib/div.S#4 (text+ko) ==== @@ -15,3 +15,4 @@ salq $32,%rdx orq %rdx,%rax ret +END(div) ==== //depot/projects/hammer/lib/libc/amd64/stdlib/ldiv.S#4 (text+ko) ==== @@ -13,3 +13,4 @@ cqto idivq %rsi ret +END(ldiv) ==== //depot/projects/hammer/lib/libc/amd64/stdlib/lldiv.S#2 (text+ko) ==== @@ -13,3 +13,4 @@ cqto idivq %rsi ret +END(lldiv) ==== //depot/projects/hammer/lib/libc/amd64/string/bcmp.S#4 (text+ko) ==== @@ -22,3 +22,4 @@ setne %al movsbl %al,%eax ret +END(bcmp) ==== //depot/projects/hammer/lib/libc/amd64/string/bcopy.S#4 (text+ko) ==== @@ -86,3 +86,12 @@ movsq cld ret +#ifdef MEMCOPY +END(memcpy) +#else +#ifdef MEMMOVE +END(memmove) +#else +END(bcopy) +#endif +#endif ==== //depot/projects/hammer/lib/libc/amd64/string/bzero.S#4 (text+ko) ==== @@ -41,3 +41,4 @@ stosb ret +END(bzero) ==== //depot/projects/hammer/lib/libc/amd64/string/memcmp.S#4 (text+ko) ==== @@ -39,3 +39,4 @@ movb -1(%rsi),%dl subl %edx,%eax ret +END(memcmp) ==== //depot/projects/hammer/lib/libc/amd64/string/memset.S#4 (text+ko) ==== @@ -58,3 +58,4 @@ movq %r11,%rax ret +END(memset) ==== //depot/projects/hammer/lib/libc/amd64/string/strcat.S#4 (text+ko) ==== @@ -163,3 +163,4 @@ .Ldone: ret +END(strcat) ==== //depot/projects/hammer/lib/libc/amd64/string/strcmp.S#4 (text+ko) ==== @@ -71,3 +71,4 @@ movzbq %dl,%rdx subq %rdx,%rax ret +END(strcmp) ==== //depot/projects/hammer/lib/libc/amd64/string/strcpy.S#5 (text+ko) ==== @@ -109,3 +109,4 @@ .Ldone: ret +END(strcpy) ==== //depot/projects/hammer/lib/libc/amd64/sys/brk.S#10 (text+ko) ==== @@ -43,6 +43,7 @@ ENTRY(_brk) pushq %rdi jmp ok +END(_brk) ENTRY(brk) pushq %rdi @@ -81,3 +82,4 @@ #else jmp HIDENAME(cerror) #endif +END(brk) ==== //depot/projects/hammer/lib/libc/amd64/sys/exect.S#9 (text+ko) ==== @@ -53,3 +53,4 @@ #else jmp HIDENAME(cerror) #endif +END(exect) ==== //depot/projects/hammer/lib/libc/amd64/sys/getcontext.S#2 (text+ko) ==== @@ -52,3 +52,4 @@ #else jmp HIDENAME(cerror) #endif +END(__sys_getcontext) ==== //depot/projects/hammer/lib/libc/amd64/sys/pipe.S#9 (text+ko) ==== @@ -57,3 +57,4 @@ #else jmp HIDENAME(cerror) #endif +END(__sys_pipe) ==== //depot/projects/hammer/lib/libc/amd64/sys/ptrace.S#8 (text+ko) ==== @@ -57,3 +57,4 @@ #else jmp HIDENAME(cerror) #endif +END(ptrace) ==== //depot/projects/hammer/lib/libc/amd64/sys/reboot.S#7 (text+ko) ==== @@ -54,3 +54,4 @@ #else jmp HIDENAME(cerror) #endif +END(__sys_reboot) ==== //depot/projects/hammer/lib/libc/amd64/sys/sbrk.S#8 (text+ko) ==== @@ -85,3 +85,4 @@ #else jmp HIDENAME(cerror) #endif +END(sbrk) ==== //depot/projects/hammer/lib/libc/amd64/sys/setlogin.S#9 (text+ko) ==== @@ -62,3 +62,4 @@ #else jmp HIDENAME(cerror) #endif +END(__sys_setlogin) ==== //depot/projects/hammer/lib/libc/amd64/sys/vfork.S#8 (text+ko) ==== @@ -56,3 +56,4 @@ #else jmp HIDENAME(cerror) #endif +END(__sys_vfork)