Date: Fri, 31 Oct 2008 18:54:17 GMT From: Peter Wemm <peter@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 152287 for review Message-ID: <200810311854.m9VIsH8r092325@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
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)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200810311854.m9VIsH8r092325>