tstellar / rpms / ceph

Forked from rpms/ceph 3 years ago
Clone
5c46ad7
--- ceph-15.2.2/src/yasm-wrapper.orig	2020-03-09 12:57:37.603837466 -0400
5c46ad7
+++ ceph-15.2.2/src/yasm-wrapper	2020-03-09 13:02:31.496796609 -0400
a09febb
@@ -1,10 +1,11 @@
a09febb
-#!/bin/sh -e
a09febb
+#!/bin/sh
a09febb
 
a09febb
 # libtool and yasm do not get along.
a09febb
 # filter out any crap that libtool feeds us that yasm does not understand.
a09febb
 #echo $0: got $*
a09febb
 new=""
a09febb
 touch=""
a09febb
+object=""
a09febb
 while [ -n "$*" ]; do
a09febb
     case "$1" in
a09febb
 	-f )
a09febb
@@ -29,6 +30,12 @@
a09febb
 	    touch="$1"
a09febb
 	    shift
a09febb
 	    ;;
a09febb
+	-o )
a09febb
+	    shift
a09febb
+	    object="$1"
a09febb
+	    new="$new -o $1"
a09febb
+	    shift
a09febb
+	    ;;
a09febb
 	* )
a09febb
 	    new="$new $1"
a09febb
 	    shift
a09febb
@@ -39,6 +46,25 @@
a09febb
 #echo $0: yasm $new
a09febb
 yasm $new
a09febb
 
a09febb
+INDEXOFNOTEGNUPROPLINE=$(readelf -S -W ${object} | grep ".note.gnu.property")
a09febb
+
a09febb
+if [ -n "${INDEXOFNOTEGNUPROPLINE}" ]; then
a09febb
+
a09febb
+	STARTOFSECTHDRLINE=$(readelf -h ${object} | grep "Start of section headers:")
a09febb
+	SIZEOFSECTHDRLINE=$(readelf -h ${object} | grep "Size of section headers:")
a09febb
+
a09febb
+	STARTOFSECTHDR=$(echo ${STARTOFSECTHDRLINE} | cut -d ' ' -f 5)
a09febb
+        SIZEOFSECTHDR=$(echo ${SIZEOFSECTHDRLINE} | cut -d ' ' -f 5)
a09febb
+        INDEXOFNOTEGNUPROPFRAG=$(echo ${INDEXOFNOTEGNUPROPLINE} | cut -d '.' -f 1)
a09febb
+
a09febb
+	INDEXOFNOTEGNUPROP=$(echo ${INDEXOFNOTEGNUPROPFRAG} | grep -Eo "[[:digit:]]+")
a09febb
+
a09febb
+	OFFSET=$(( ${STARTOFSECTHDR} + 4 + ( ${SIZEOFSECTHDR} * ${INDEXOFNOTEGNUPROP} ) ))
a09febb
+
a09febb
+	printf '\x07' | dd of=${object} bs=1 seek=${OFFSET} count=1 conv=notrunc &> /dev/null
a09febb
+
a09febb
+fi
a09febb
+
a09febb
 [ -n "$touch" ] && touch $touch
a09febb
 
a09febb
 true
5c46ad7
--- ceph-15.2.2/src/common/crc32c_intel_fast_asm.s.orig	2020-05-26 08:34:32.226201974 -0400
abcc0b7
+++ ceph-15.2.2/src/common/crc32c_intel_fast_asm.s	2020-05-26 17:19:20.327201974 -0400
5c46ad7
@@ -1,5 +1,5 @@
5c46ad7
 ;
5c46ad7
-; Copyright 2012-2013 Intel Corporation All Rights Reserved.
5c46ad7
+; Copyright 2012-2015 Intel Corporation All Rights Reserved.
5c46ad7
 ; All rights reserved.
5c46ad7
 ;
5c46ad7
 ; http://opensource.org/licenses/BSD-3-Clause
5c46ad7
@@ -59,16 +59,34 @@
5c46ad7
 	xor     rbx, rbx                ;; rbx = crc1 = 0;
5c46ad7
 	xor     r10, r10                ;; r10 = crc2 = 0;
5c46ad7
 
5c46ad7
+	cmp	len, %%bSize*3*2
5c46ad7
+	jbe	%%non_prefetch
5c46ad7
+
5c46ad7
  %assign i 0
5c46ad7
  %rep %%bSize/8 - 1
5c46ad7
-	crc32   rax, [bufptmp+i + 0*%%bSize]  ;; update crc0
5c46ad7
-	crc32   rbx, [bufptmp+i + 1*%%bSize]  ;; update crc1
5c46ad7
-	crc32   r10, [bufptmp+i + 2*%%bSize]  ;; update crc2
5c46ad7
+ %if i < %%bSize*3/4
5c46ad7
+	prefetchnta	[bufptmp+ %%bSize*3 + i*4]
5c46ad7
+ %endif
5c46ad7
+	crc32   rax, qword [bufptmp+i + 0*%%bSize]  ;; update crc0
5c46ad7
+	crc32   rbx, qword [bufptmp+i + 1*%%bSize]  ;; update crc1
5c46ad7
+	crc32   r10, qword [bufptmp+i + 2*%%bSize]  ;; update crc2
5c46ad7
 	%assign i (i+8)
5c46ad7
  %endrep
5c46ad7
-	crc32   rax, [bufptmp+i + 0*%%bSize]  ;; update crc0
5c46ad7
-	crc32   rbx, [bufptmp+i + 1*%%bSize]  ;; update crc1
5c46ad7
-; SKIP  ;crc32  r10, [bufptmp+i + 2*%%bSize]  ;; update crc2
5c46ad7
+	jmp %%next %+ %1
5c46ad7
+
5c46ad7
+%%non_prefetch:
5c46ad7
+ %assign i 0
5c46ad7
+ %rep %%bSize/8 - 1
5c46ad7
+	crc32   rax, qword [bufptmp+i + 0*%%bSize]  ;; update crc0
5c46ad7
+	crc32   rbx, qword [bufptmp+i + 1*%%bSize]  ;; update crc1
5c46ad7
+	crc32  r10, qword [bufptmp+i + 2*%%bSize]  ;; update crc2
5c46ad7
+	%assign i (i+8)
5c46ad7
+ %endrep
5c46ad7
+
5c46ad7
+%%next %+ %1:
5c46ad7
+	crc32   rax, qword [bufptmp+i + 0*%%bSize]  ;; update crc0
5c46ad7
+	crc32   rbx, qword [bufptmp+i + 1*%%bSize]  ;; update crc1
5c46ad7
+; SKIP	;crc32  r10, qword [bufptmp+i + 2*%%bSize]  ;; update crc2
5c46ad7
 
5c46ad7
 	; merge in crc0
5c46ad7
 	movzx   bufp_dw, al
5c46ad7
@@ -180,12 +198,15 @@
5c46ad7
 %define crc_init_dw     r8d 
5c46ad7
 %endif
5c46ad7
 
5c46ad7
-
5c46ad7
+	endbranch
5c46ad7
 	push    rdi
5c46ad7
 	push    rbx
5c46ad7
 
5c46ad7
 	mov     rax, crc_init           ;; rax = crc_init;
5c46ad7
 
5c46ad7
+	cmp	len, 8
5c46ad7
+	jb	less_than_8
5c46ad7
+
5c46ad7
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
5c46ad7
 ;; 1) ALIGN: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
5c46ad7
 
5c46ad7
@@ -195,9 +216,6 @@
5c46ad7
 					;; amount of the address
5c46ad7
 	je      proc_block              ;; Skip if aligned
5c46ad7
 
5c46ad7
-	cmp     len, 8
5c46ad7
-	jb      less_than_8
5c46ad7
-
5c46ad7
 	;;;; Calculate CRC of unaligned bytes of the buffer (if any) ;;;;
5c46ad7
 	mov     rbx, [bufptmp]          ;; load a quadword from the buffer
5c46ad7
 	add     bufptmp, bufp           ;; align buffer pointer for
5c46ad7
@@ -233,7 +251,7 @@
5c46ad7
 	jnc     bit7                    ;; jump to bit-6 if bit-7 == 0
5c46ad7
  %assign i 0
5c46ad7
  %rep 16
5c46ad7
-	crc32   rax, [bufptmp+i]        ;; compute crc32 of 8-byte data
5c46ad7
+	crc32   rax, qword [bufptmp+i]  ;; compute crc32 of 8-byte data
5c46ad7
 	%assign i (i+8)
5c46ad7
  %endrep
5c46ad7
 	je      do_return               ;; return if remaining data is zero
5c46ad7
@@ -244,7 +262,7 @@
5c46ad7
 	jnc     bit6                    ;; jump to bit-6 if bit-7 == 0
5c46ad7
  %assign i 0
5c46ad7
  %rep 8
5c46ad7
-	crc32   rax, [bufptmp+i]        ;; compute crc32 of 8-byte data
5c46ad7
+	crc32   rax, qword [bufptmp+i]  ;; compute crc32 of 8-byte data
5c46ad7
 	%assign i (i+8)
5c46ad7
  %endrep
5c46ad7
 	je      do_return               ;; return if remaining data is zero
5c46ad7
@@ -254,7 +272,7 @@
5c46ad7
 	jnc     bit5                    ;; jump to bit-5 if bit-6 == 0
5c46ad7
  %assign i 0
5c46ad7
  %rep 4
5c46ad7
-	crc32   rax, [bufptmp+i]        ;;    compute crc32 of 8-byte data
5c46ad7
+	crc32   rax, qword [bufptmp+i]  ;;    compute crc32 of 8-byte data
5c46ad7
 	%assign i (i+8)
5c46ad7
  %endrep
5c46ad7
 	je      do_return               ;; return if remaining data is zero
5c46ad7
@@ -264,7 +282,7 @@
5c46ad7
 	jnc     bit4                    ;; jump to bit-4 if bit-5 == 0
5c46ad7
  %assign i 0
5c46ad7
  %rep 2
5c46ad7
-	crc32   rax, [bufptmp+i]        ;;    compute crc32 of 8-byte data
5c46ad7
+	crc32   rax, qword [bufptmp+i]  ;;    compute crc32 of 8-byte data
5c46ad7
 	%assign i (i+8)
5c46ad7
  %endrep
5c46ad7
 	je      do_return               ;; return if remaining data is zero
5c46ad7
@@ -272,11 +290,11 @@
5c46ad7
 bit4:
5c46ad7
 	shl     len_b, 1                ;; shift-out MSB (bit-4)
5c46ad7
 	jnc     bit3                    ;; jump to bit-3 if bit-4 == 0
5c46ad7
-	crc32   rax, [bufptmp]          ;; compute crc32 of 8-byte data
5c46ad7
+	crc32   rax, qword [bufptmp]    ;; compute crc32 of 8-byte data
5c46ad7
 	je      do_return               ;; return if remaining data is zero
5c46ad7
 	add     bufptmp, 8              ;; buf +=8; (next 8 bytes)
5c46ad7
 bit3:
5c46ad7
-	mov     rbx, [bufptmp]          ;; load a 8-bytes from the buffer:
5c46ad7
+	mov     rbx, qword [bufptmp]    ;; load a 8-bytes from the buffer:
5c46ad7
 	shl     len_b, 1                ;; shift-out MSB (bit-3)
5c46ad7
 	jnc     bit2                    ;; jump to bit-2 if bit-3 == 0
5c46ad7
 	crc32   eax, ebx                ;; compute crc32 of 4-byte data
5c46ad7
@@ -672,3 +690,22 @@
5c46ad7
 ; inform linker that this doesn't require executable stack
5c46ad7
 section .note.GNU-stack noalloc noexec nowrite progbits
5c46ad7
 %endif
5c46ad7
+
5c46ad7
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
5c46ad7
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
5c46ad7
+
5c46ad7
+SECTION .note.gnu.property align=8 noexec               ; section number 22, const
5c46ad7
+
5c46ad7
+        db 04H, 00H, 00H, 00H, 20H, 00H, 00H, 00H       ; 0000 _ .... ...
5c46ad7
+        db 05H, 00H, 00H, 00H, 47H, 4EH, 55H, 00H       ; 0008 _ ....GNU.
5c46ad7
+        db 00H, 00H, 00H, 0C0H, 04H, 00H, 00H, 00H      ; 0010 _ ........
5c46ad7
+        db 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H       ; 0018 _ ........
5c46ad7
+        db 01H, 00H, 00H, 0C0H, 04H, 00H, 00H, 00H      ; 0020 _ ........
5c46ad7
+        db 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H       ; 0028 _ ........
5c46ad7
+        db 04H, 00H, 00H, 00H, 10H, 00H, 00H, 00H       ; 0030 _ ........
5c46ad7
+        db 05H, 00H, 00H, 00H, 47H, 4EH, 55H, 00H       ; 0038 _ ....GNU.
5c46ad7
+        db 02H, 00H, 00H, 0C0H, 04H, 00H, 00H, 00H      ; 0040 _ ........
5c46ad7
+        db 03H, 00H, 00H, 00H, 00H, 00H, 00H, 00H       ; 0048 _ ........
5c46ad7
+
5c46ad7
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
5c46ad7
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
5c46ad7
--- ceph-15.2.2/src/common/crc32c_intel_fast_zero_asm.s.orig	2020-05-26 08:34:32.226201974 -0400
abcc0b7
+++ ceph-15.2.2/src/common/crc32c_intel_fast_zero_asm.s	2020-05-26 17:19:32.497201974 -0400
5c46ad7
@@ -1,5 +1,5 @@
5c46ad7
 ;
5c46ad7
-; Copyright 2012-2013 Intel Corporation All Rights Reserved.
5c46ad7
+; Copyright 2012-2015 Intel Corporation All Rights Reserved.
5c46ad7
 ; All rights reserved.
5c46ad7
 ;
5c46ad7
 ; http://opensource.org/licenses/BSD-3-Clause
5c46ad7
@@ -59,6 +59,19 @@
5c46ad7
 	xor     rbx, rbx                ;; rbx = crc1 = 0;
5c46ad7
 	xor     r10, r10                ;; r10 = crc2 = 0;
5c46ad7
 
5c46ad7
+	cmp	len, %%bSize*3*2
5c46ad7
+	jbe	%%non_prefetch
5c46ad7
+
5c46ad7
+ %assign i 0
5c46ad7
+ %rep %%bSize/8 - 1
5c46ad7
+	crc32   rax, bufptmp  ;; update crc0
5c46ad7
+	crc32   rbx, bufptmp  ;; update crc1
5c46ad7
+	crc32   r10, bufptmp  ;; update crc2
5c46ad7
+	%assign i (i+8)
5c46ad7
+ %endrep
66d0b21
+	jmp %%next %+ %1
5c46ad7
+
5c46ad7
+%%non_prefetch:
5c46ad7
  %assign i 0
5c46ad7
  %rep %%bSize/8 - 1
5c46ad7
 	crc32   rax, bufptmp  ;; update crc0
5c46ad7
@@ -66,6 +79,8 @@
5c46ad7
 	crc32   r10, bufptmp  ;; update crc2
5c46ad7
 	%assign i (i+8)
5c46ad7
  %endrep
5c46ad7
+
5c46ad7
+%%next %+ %1:
5c46ad7
 	crc32   rax, bufptmp  ;; update crc0
5c46ad7
 	crc32   rbx, bufptmp  ;; update crc1
5c46ad7
 ; SKIP  ;crc32  r10, bufptmp  ;; update crc2
5c46ad7
@@ -180,12 +195,15 @@
5c46ad7
 %define crc_init_dw     r8d
5c46ad7
 %endif
5c46ad7
 
5c46ad7
-
5c46ad7
+	endbranch
5c46ad7
 	push    rdi
5c46ad7
 	push    rbx
5c46ad7
 
5c46ad7
 	mov     rax, crc_init           ;; rax = crc_init;
5c46ad7
 
5c46ad7
+	cmp	len, 8
5c46ad7
+	jb	less_than_8
5c46ad7
+
5c46ad7
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
5c46ad7
 ;; 1) ALIGN: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
5c46ad7
 
5c46ad7
@@ -654,3 +672,22 @@
5c46ad7
 ; inform linker that this doesn't require executable stack
5c46ad7
 section .note.GNU-stack noalloc noexec nowrite progbits
5c46ad7
 %endif
5c46ad7
+
5c46ad7
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
5c46ad7
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
5c46ad7
+
5c46ad7
+SECTION .note.gnu.property align=8 noexec               ; section number 22, const
5c46ad7
+
5c46ad7
+        db 04H, 00H, 00H, 00H, 20H, 00H, 00H, 00H       ; 0000 _ .... ...
5c46ad7
+        db 05H, 00H, 00H, 00H, 47H, 4EH, 55H, 00H       ; 0008 _ ....GNU.
5c46ad7
+        db 00H, 00H, 00H, 0C0H, 04H, 00H, 00H, 00H      ; 0010 _ ........
5c46ad7
+        db 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H       ; 0018 _ ........
5c46ad7
+        db 01H, 00H, 00H, 0C0H, 04H, 00H, 00H, 00H      ; 0020 _ ........
5c46ad7
+        db 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H       ; 0028 _ ........
5c46ad7
+        db 04H, 00H, 00H, 00H, 10H, 00H, 00H, 00H       ; 0030 _ ........
5c46ad7
+        db 05H, 00H, 00H, 00H, 47H, 4EH, 55H, 00H       ; 0038 _ ....GNU.
5c46ad7
+        db 02H, 00H, 00H, 0C0H, 04H, 00H, 00H, 00H      ; 0040 _ ........
5c46ad7
+        db 03H, 00H, 00H, 00H, 00H, 00H, 00H, 00H       ; 0048 _ ........
5c46ad7
+
5c46ad7
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
5c46ad7
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;