Index: head/net/ceph14/Makefile =================================================================== --- head/net/ceph14/Makefile (revision 559983) +++ head/net/ceph14/Makefile (revision 559984) @@ -1,172 +1,172 @@ # Created by: Willem Jan Withagen # $FreeBSD$ PORTNAME= ceph DISTVERSIONPREFIX= v DISTVERSION= 14.2.11 PORTREVISION= 2 CATEGORIES= net PKGNAMESUFFIX= 14 MAINTAINER= wjw@digiware.nl COMMENT= Ceph delivers object, block, and file storage in a unified system LICENSE= GPLv2 LGPL3 LICENSE_COMB= dual # even though i386 will build, it is not really advised. -ONLY_FOR_ARCHS= amd64 powerpc64 +ONLY_FOR_ARCHS= amd64 powerpc64 powerpc64le BUILD_DEPENDS= \ bash:shells/bash \ git:devel/git \ gperf:devel/gperf \ yasm:devel/yasm \ ${PY_SPHINX} \ ${LOCALBASE}/lib/libatomic_ops.a:devel/libatomic_ops \ ${LOCALBASE}/bin/ld:devel/binutils LIB_DEPENDS= \ ${PY_BOOST} \ libboost_thread.so:devel/boost-libs \ libleveldb.so:databases/leveldb \ libnss3.so:security/nss \ libcryptopp.so:security/cryptopp \ liboath.so:security/oath-toolkit \ libsnappy.so:archivers/snappy \ libcurl.so:ftp/curl \ libxml2.so:textproc/libxml2 \ libexpat.so:textproc/expat2 \ liblz4.so:archivers/liblz4 \ libplds4.so:devel/nspr \ libtcmalloc.so:devel/google-perftools \ librabbitmq.so:net/rabbitmq-c \ libfmt.so:devel/libfmt RUN_DEPENDS= \ bash:shells/bash \ flock:sysutils/flock \ jq:textproc/jq \ smartctl:sysutils/smartmontools \ xml:textproc/xmlstarlet \ ${LOCALBASE}/bin/getopt:misc/getopt \ ${PYTHON_PKGNAMEPREFIX}grpcio>=0:devel/py-grpcio@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}prettytable>=0:devel/py-prettytable@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}six>=0:devel/py-six@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}virtualenv>=0:devel/py-virtualenv@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}protobuf>=0:devel/py-protobuf@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}bcrypt>=0:security/py-bcrypt@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}openssl>=0:security/py-openssl@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pyjwt>=0:www/py-pyjwt@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}werkzeug>=0:www/py-werkzeug@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}cherrypy>=0:www/py-cherrypy@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pecan>=0:www/py-pecan@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}requests>=0:www/py-requests@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}routes>=0:www/py-routes@${PY_FLAVOR} USES= cmake:noninja compiler:c++17-lang dos2unix fuse gettext-runtime gmake ncurses \ pkgconfig python:3.7+ shebangfix ssl USE_PYTHON= cython py3kplist USE_OPENLDAP= yes USE_GITHUB= yes GH_ACCOUNT= ceph:DEFAULT DOS2UNIX_FILES= src/pybind/mgr/diskprediction_cloud/common/__init__.py CONFLICTS_INSTALL= ceph PORTSCOUT= limit:^v14\. GH_TUPLE+= ceph:ceph-erasure-code-corpus:2d7d78b:ceph_erasure_code_corpus/ceph-erasure-code-corpus GH_TUPLE+= ceph:ceph-object-corpus:e32bf8c:ceph_object_corpus/ceph-object-corpus GH_TUPLE+= ceph:civetweb:bb99e93:civetweb/src/civetweb GH_TUPLE+= 01org:isa-l_crypto:603529a:isa_l_crypto/src/crypto/isa-l/isa-l_crypto GH_TUPLE+= ceph:dmclock:4496dbc:dmclock/src/dmclock GH_TUPLE+= ceph:gf-complete:7e61b44:gf_complete/src/erasure-code/jerasure/gf-complete GH_TUPLE+= ceph:jerasure:96c76b8:jerasure/src/erasure-code/jerasure/jerasure GH_TUPLE+= ceph:googletest:fdb8504:googletest/src/googletest GH_TUPLE+= ceph:isa-l:7e1a337:isa_l/src/isa-l GH_TUPLE+= ceph:lua:1fce39c:lua/src/lua GH_TUPLE+= ceph:rapidjson:f54b0e4:rapidjson/src/rapidjson GH_TUPLE+= ceph:rocksdb:4c736f1:rocksdb/src/rocksdb GH_TUPLE+= ceph:xxHash:1f40c65:xxHash/src/xxHash GH_TUPLE+= facebook:zstd:f4340f4:zstd/src/zstd # GH_TUPLE+= ceph:seastar:0cf6aa6:seastar/src/seastar CMAKE_BUILD_TYPE= Release CMAKE_ON= WITH_SYSTEM_BOOST WITH_BOOST_CONTEXT WITH_FUSE WITH_PYTHON3 CMAKE_OFF= WITH_LTTNG WITH_BABELTRACE WITH_KRBD WITH_XFS \ WITH_SPDK WITH_RDMA WITH_MGR_DASHBOARD_FRONTEND WITH_PYTHON2 \ WITH_RADOSGW_KAFKA_ENDPOINT CMAKE_ARGS= -D MGR_PYTHON_VERSION=${PYTHON_VER} \ -D CEPH_MAN_DIR:STRING=man SHEBANG_FILES= src/rbdmap src/ceph-post-file.in src/rbd-replay-many \ src/tools/ceph-monstore-update-crush.sh src/mount.fuse.ceph \ src/ceph-create-keys USE_RC_SUBR= ceph USE_LDCONFIG= yes USERS= ceph GROUPS= ceph BINARY_ALIAS= sphinx-build=sphinx-build-${PYTHON_VER} # PLIST_SUB=CMAKE_BUILD_TYPE_regex="\bdebug\b" .include .if ${ARCH} != amd64 PLIST_SUB+= NO_AMD64="@comment " .else PLIST_SUB+= NO_AMD64="" .endif pre-configure: [ -e ${WRKSRC}/build ] || ${LN} -s ${CONFIGURE_WRKSRC} ${WRKSRC}/build ${CP} files/file-git_version ${WRKSRC}/src/.git_version # Use the module finders that come with Cmake for Boost and Python ${RM} ${WRKSRC}/cmake/modules/FindBoost.cmake || true post-install: # To install a ceph.conf sample ${MKDIR} ${STAGEDIR}${PREFIX}/etc/ceph ${INSTALL_DATA} ${WRKSRC}/src/sample.ceph.conf ${STAGEDIR}${PREFIX}/etc/ceph/ceph.conf.sample # Get logging and rotation working ${MKDIR} ${STAGEDIR}/var/log/ceph ${MKDIR} ${STAGEDIR}${PREFIX}/etc/newsyslog.conf.d ${INSTALL_DATA} files/file-newsyslog_ceph-log.conf ${STAGEDIR}${PREFIX}/etc/newsyslog.conf.d # Create directories used bij daemons ${MKDIR} ${STAGEDIR}/var/lib/ceph/bootstrap-mds ${MKDIR} ${STAGEDIR}/var/lib/ceph/bootstrap-osd ${MKDIR} ${STAGEDIR}/var/lib/ceph/bootstrap-rgw ${MKDIR} ${STAGEDIR}/var/lib/ceph/bootstrap-mgr ${MKDIR} ${STAGEDIR}/var/lib/ceph/mds ${MKDIR} ${STAGEDIR}/var/lib/ceph/mon ${MKDIR} ${STAGEDIR}/var/lib/ceph/osd ${MKDIR} ${STAGEDIR}/var/lib/ceph/mgr ${MKDIR} ${STAGEDIR}/var/lib/ceph/tmp ${MKDIR} ${STAGEDIR}/var/lib/ceph/radosgw # For PID files and command sockets and log files ${MKDIR} ${STAGEDIR}/var/log/ceph ${MKDIR} ${STAGEDIR}/var/run/ceph # Use the Ceph init.d script as the interface to regular # starting and stopping daemons. rc.d work is done thru # a separate rc.d/ceph script calling init-ceph again. ${MV} ${STAGEDIR}${PREFIX}/etc/init.d/ceph ${STAGEDIR}${PREFIX}/bin/init-ceph # remove files not packaged ${RM} ${STAGEDIR}${DOCSDIR}/sample.fetch_config ${RM} ${STAGEDIR}${DOCSDIR}/sample.ceph.conf ${RMDIR} ${STAGEDIR}${DOCSDIR} ${RM} ${STAGEDIR}${PREFIX}/bin/ceph_bench_log ${RM} ${STAGEDIR}${PREFIX}/bin/ceph_multi_stress_watch ${RM} ${STAGEDIR}${PREFIX}/bin/ceph_perf* ${RM} ${STAGEDIR}${PREFIX}/bin/ceph_psim ${RM} ${STAGEDIR}${PREFIX}/bin/ceph_scratchtoolpp ${RM} ${STAGEDIR}${PREFIX}/bin/ceph_smalliobench* ${RM} ${STAGEDIR}${PREFIX}/bin/ceph_test* ${RM} ${STAGEDIR}${PREFIX}/bin/ceph_tpbench ${RM} ${STAGEDIR}${PREFIX}/bin/ceph_xattr_bench ${RM} ${STAGEDIR}${PREFIX}/sbin/ceph-disk-udev ${RM} ${STAGEDIR}${PREFIX}/sbin/ceph-volume-systemd ${RM} -rf ${STAGEDIR}${PREFIX}/libexec/systemd ${RMDIR} ${STAGEDIR}${PREFIX}/etc/init.d .include Index: head/net/ceph14/files/patch-src_common_crc32c__ppc__asm.S =================================================================== --- head/net/ceph14/files/patch-src_common_crc32c__ppc__asm.S (nonexistent) +++ head/net/ceph14/files/patch-src_common_crc32c__ppc__asm.S (revision 559984) @@ -0,0 +1,68 @@ +--- src/common/crc32c_ppc_asm.S.orig 2021-01-02 03:36:51.991947000 +0100 ++++ src/common/crc32c_ppc_asm.S 2021-01-02 03:37:48.304305000 +0100 +@@ -17,16 +17,25 @@ + * http://en.wikipedia.org/wiki/Barrett_reduction + * + * Copyright (C) 2015 Anton Blanchard , IBM +- * Copyright (C) 2017 International Business Machines Corp. +- * All rights reserved. + * + * This program is free software; you can redistribute it and/or +- * modify it under the terms of the GNU General Public License +- * as published by the Free Software Foundation; either version +- * 2 of the License, or (at your option) any later version. ++ * modify it under the terms of either: ++ * ++ * a) the GNU General Public License as published by the Free Software ++ * Foundation; either version 2 of the License, or (at your option) ++ * any later version, or ++ * b) the Apache License, Version 2.0 + */ ++ ++#if defined (__clang__) ++#ifndef __ALTIVEC__ ++#define __ALTIVEC__ ++#endif ++#include "ppc-asm.h" ++#else + #include +-#include "common/ppc-opcode.h" ++#endif ++#include "ppc-opcode.h" + + #undef toc + +@@ -45,8 +54,11 @@ + /* byte reverse permute constant */ + .octa 0x0F0E0D0C0B0A09080706050403020100 + +-#define __ASSEMBLY__ +-#include "crc32c_ppc_constants.h" ++#ifdef CRC32_CONSTANTS_HEADER ++#include CRC32_CONSTANTS_HEADER ++#else ++#include "crc32c_ppc_constants.h" ++#endif + + .text + +@@ -80,8 +92,12 @@ + #define VPERM(A, B, C, D) + #endif + ++#ifndef CRC32_FUNCTION_ASM ++#define CRC32_FUNCTION_ASM __crc32_vpmsum ++#endif ++ + /* unsigned int __crc32_vpmsum(unsigned int crc, void *p, unsigned long len) */ +-FUNC_START(__crc32_vpmsum) ++FUNC_START(CRC32_FUNCTION_ASM) + std r31,-8(r1) + std r30,-16(r1) + std r29,-24(r1) +@@ -768,4 +784,4 @@ + mr r3,r10 + b .Lout + +-FUNC_END(__crc32_vpmsum) ++FUNC_END(CRC32_FUNCTION_ASM) Property changes on: head/net/ceph14/files/patch-src_common_crc32c__ppc__asm.S ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/net/ceph14/files/patch-src_common_crc32c__ppc__fast__zero__asm.S =================================================================== --- head/net/ceph14/files/patch-src_common_crc32c__ppc__fast__zero__asm.S (nonexistent) +++ head/net/ceph14/files/patch-src_common_crc32c__ppc__fast__zero__asm.S (revision 559984) @@ -0,0 +1,115 @@ +--- src/common/crc32c_ppc_fast_zero_asm.S.orig 2020-08-10 22:15:22.000000000 +0200 ++++ src/common/crc32c_ppc_fast_zero_asm.S 2021-01-03 01:06:00.563321000 +0100 +@@ -1,6 +1,6 @@ + /* + * Use the fixed point version of Barrett reduction to compute a mod n +- * over GF(2) for given n using POWER8 instructions. We use k = 32. ++ * over GF(2) for n = 0x104c11db7 using POWER8 instructions. We use k = 32. + * + * http://en.wikipedia.org/wiki/Barrett_reduction + * +@@ -14,33 +14,39 @@ + * any later version, or + * b) the Apache License, Version 2.0 + */ +-#include +-#include "common/ppc-opcode.h" + +-#undef toc +- +-#ifndef r1 +-#define r1 1 ++#if defined (__clang__) ++#ifndef __ALTIVEC__ ++#define __ALTIVEC__ + #endif +- +-#ifndef r2 +-#define r2 2 ++#include "ppc-asm.h" ++#else ++#include + #endif ++#include "ppc-opcode.h" + + .section .data + .balign 16 +- +-.barrett_fz_constants: ++.constants: + /* Barrett constant m - (4^32)/n */ +- .octa 0x0000000000000000000000011f91caf6 /* x^64 div p(x) */ ++ .octa 0x00000000000000000000000104d101df ++ + /* Barrett constant n */ +- .octa 0x0000000000000000000000011edc6f41 ++ .octa 0x00000000000000000000000104c11db7 + +-.text ++.bit_reflected_constants: ++ /* 33 bit reflected Barrett constant m - (4^32)/n */ ++ .octa 0x000000000000000000000001f7011641 ++ ++ /* 33 bit reflected Barrett constant n */ ++ .octa 0x000000000000000000000001db710641 ++ ++ .text ++ + /* unsigned int barrett_reduction(unsigned long val) */ + FUNC_START(barrett_reduction) +- addis r4,r2,.barrett_fz_constants@toc@ha +- addi r4,r4,.barrett_fz_constants@toc@l ++ lis r4,.constants@ha ++ la r4,.constants@l(r4) + + li r5,16 + vxor v1,v1,v1 /* zero v1 */ +@@ -74,4 +80,47 @@ + + blr + FUNC_END(barrett_reduction) +- ++ ++/* unsigned int barrett_reduction_reflected(unsigned long val) */ ++FUNC_START(barrett_reduction_reflected) ++ lis r4,.bit_reflected_constants@ha ++ la r4,.bit_reflected_constants@l(r4) ++ ++ li r5,16 ++ vxor v1,v1,v1 /* zero v1 */ ++ ++ /* Get a into v0 */ ++ MTVRD(v0, r3) ++ vsldoi v0,v1,v0,8 /* shift into bottom 64 bits, this is a */ ++ ++ /* Load constants */ ++ lvx v2,0,r4 /* m */ ++ lvx v3,r5,r4 /* n */ ++ ++ vspltisw v5,-1 /* all ones */ ++ vsldoi v6,v1,v5,4 /* bitmask with low 32 bits set */ ++ ++ /* ++ * Now for the Barrett reduction algorithm. Instead of bit reflecting ++ * our data (which is expensive to do), we bit reflect our constants ++ * and our algorithm, which means the intermediate data in our vector ++ * registers goes from 0-63 instead of 63-0. We can reflect the ++ * algorithm because we don't carry in mod 2 arithmetic. ++ */ ++ vand v4,v0,v6 /* bottom 32 bits of a */ ++ VPMSUMD(v4,v4,v2) /* ma */ ++ vand v4,v4,v6 /* bottom 32bits of ma */ ++ VPMSUMD(v4,v4,v3) /* qn */ ++ vxor v0,v0,v4 /* a - qn, subtraction is xor in GF(2) */ ++ ++ /* ++ * Since we are bit reflected, the result (ie the low 32 bits) is in the ++ * high 32 bits. We just need to shift it left 4 bytes ++ * V0 [ 0 1 X 3 ] ++ * V0 [ 0 X 2 3 ] ++ */ ++ vsldoi v0,v0,v1,4 /* shift result into top 64 bits of v0 */ ++ MFVRD(r3, v0) ++ ++ blr ++FUNC_END(barrett_reduction_reflected) Property changes on: head/net/ceph14/files/patch-src_common_crc32c__ppc__fast__zero__asm.S ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/net/ceph14/files/patch-src_common_ppc-asm.h =================================================================== --- head/net/ceph14/files/patch-src_common_ppc-asm.h (nonexistent) +++ head/net/ceph14/files/patch-src_common_ppc-asm.h (revision 559984) @@ -0,0 +1,384 @@ +--- src/common/ppc-asm.h.orig 2021-01-02 03:38:36.578348000 +0100 ++++ src/common/ppc-asm.h 2021-01-02 03:38:12.285208000 +0100 +@@ -0,0 +1,381 @@ ++/* PowerPC asm definitions for GNU C. ++ ++Copyright (C) 2002-2017 Free Software Foundation, Inc. ++ ++This file is part of GCC. ++ ++GCC is free software; you can redistribute it and/or modify it under ++the terms of the GNU General Public License as published by the Free ++Software Foundation; either version 3, or (at your option) any later ++version. ++ ++GCC is distributed in the hope that it will be useful, but WITHOUT ANY ++WARRANTY; without even the implied warranty of MERCHANTABILITY or ++FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++for more details. ++ ++Under Section 7 of GPL version 3, you are granted additional ++permissions described in the GCC Runtime Library Exception, version ++3.1, as published by the Free Software Foundation. ++ ++You should have received a copy of the GNU General Public License and ++a copy of the GCC Runtime Library Exception along with this program; ++see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ++. */ ++ ++/* Under winnt, 1) gas supports the following as names and 2) in particular ++ defining "toc" breaks the FUNC_START macro as ".toc" becomes ".2" */ ++ ++#define r0 0 ++#define sp 1 ++#define toc 2 ++#define r3 3 ++#define r4 4 ++#define r5 5 ++#define r6 6 ++#define r7 7 ++#define r8 8 ++#define r9 9 ++#define r10 10 ++#define r11 11 ++#define r12 12 ++#define r13 13 ++#define r14 14 ++#define r15 15 ++#define r16 16 ++#define r17 17 ++#define r18 18 ++#define r19 19 ++#define r20 20 ++#define r21 21 ++#define r22 22 ++#define r23 23 ++#define r24 24 ++#define r25 25 ++#define r26 26 ++#define r27 27 ++#define r28 28 ++#define r29 29 ++#define r30 30 ++#define r31 31 ++ ++#define cr0 0 ++#define cr1 1 ++#define cr2 2 ++#define cr3 3 ++#define cr4 4 ++#define cr5 5 ++#define cr6 6 ++#define cr7 7 ++ ++#define f0 0 ++#define f1 1 ++#define f2 2 ++#define f3 3 ++#define f4 4 ++#define f5 5 ++#define f6 6 ++#define f7 7 ++#define f8 8 ++#define f9 9 ++#define f10 10 ++#define f11 11 ++#define f12 12 ++#define f13 13 ++#define f14 14 ++#define f15 15 ++#define f16 16 ++#define f17 17 ++#define f18 18 ++#define f19 19 ++#define f20 20 ++#define f21 21 ++#define f22 22 ++#define f23 23 ++#define f24 24 ++#define f25 25 ++#define f26 26 ++#define f27 27 ++#define f28 28 ++#define f29 29 ++#define f30 30 ++#define f31 31 ++ ++#ifdef __VSX__ ++#define f32 32 ++#define f33 33 ++#define f34 34 ++#define f35 35 ++#define f36 36 ++#define f37 37 ++#define f38 38 ++#define f39 39 ++#define f40 40 ++#define f41 41 ++#define f42 42 ++#define f43 43 ++#define f44 44 ++#define f45 45 ++#define f46 46 ++#define f47 47 ++#define f48 48 ++#define f49 49 ++#define f50 30 ++#define f51 51 ++#define f52 52 ++#define f53 53 ++#define f54 54 ++#define f55 55 ++#define f56 56 ++#define f57 57 ++#define f58 58 ++#define f59 59 ++#define f60 60 ++#define f61 61 ++#define f62 62 ++#define f63 63 ++#endif ++ ++#ifdef __ALTIVEC__ ++#define v0 0 ++#define v1 1 ++#define v2 2 ++#define v3 3 ++#define v4 4 ++#define v5 5 ++#define v6 6 ++#define v7 7 ++#define v8 8 ++#define v9 9 ++#define v10 10 ++#define v11 11 ++#define v12 12 ++#define v13 13 ++#define v14 14 ++#define v15 15 ++#define v16 16 ++#define v17 17 ++#define v18 18 ++#define v19 19 ++#define v20 20 ++#define v21 21 ++#define v22 22 ++#define v23 23 ++#define v24 24 ++#define v25 25 ++#define v26 26 ++#define v27 27 ++#define v28 28 ++#define v29 29 ++#define v30 30 ++#define v31 31 ++#endif ++ ++#ifdef __VSX__ ++#define vs0 0 ++#define vs1 1 ++#define vs2 2 ++#define vs3 3 ++#define vs4 4 ++#define vs5 5 ++#define vs6 6 ++#define vs7 7 ++#define vs8 8 ++#define vs9 9 ++#define vs10 10 ++#define vs11 11 ++#define vs12 12 ++#define vs13 13 ++#define vs14 14 ++#define vs15 15 ++#define vs16 16 ++#define vs17 17 ++#define vs18 18 ++#define vs19 19 ++#define vs20 20 ++#define vs21 21 ++#define vs22 22 ++#define vs23 23 ++#define vs24 24 ++#define vs25 25 ++#define vs26 26 ++#define vs27 27 ++#define vs28 28 ++#define vs29 29 ++#define vs30 30 ++#define vs31 31 ++#define vs32 32 ++#define vs33 33 ++#define vs34 34 ++#define vs35 35 ++#define vs36 36 ++#define vs37 37 ++#define vs38 38 ++#define vs39 39 ++#define vs40 40 ++#define vs41 41 ++#define vs42 42 ++#define vs43 43 ++#define vs44 44 ++#define vs45 45 ++#define vs46 46 ++#define vs47 47 ++#define vs48 48 ++#define vs49 49 ++#define vs50 30 ++#define vs51 51 ++#define vs52 52 ++#define vs53 53 ++#define vs54 54 ++#define vs55 55 ++#define vs56 56 ++#define vs57 57 ++#define vs58 58 ++#define vs59 59 ++#define vs60 60 ++#define vs61 61 ++#define vs62 62 ++#define vs63 63 ++#endif ++ ++/* ++ * Macros to glue together two tokens. ++ */ ++ ++#ifdef __STDC__ ++#define XGLUE(a,b) a##b ++#else ++#define XGLUE(a,b) a/**/b ++#endif ++ ++#define GLUE(a,b) XGLUE(a,b) ++ ++/* ++ * Macros to begin and end a function written in assembler. If -mcall-aixdesc ++ * or -mcall-nt, create a function descriptor with the given name, and create ++ * the real function with one or two leading periods respectively. ++ */ ++ ++#if defined(__powerpc64__) && _CALL_ELF == 2 ++ ++/* Defining "toc" above breaks @toc in assembler code. */ ++#undef toc ++ ++#define FUNC_NAME(name) GLUE(__USER_LABEL_PREFIX__,name) ++#define JUMP_TARGET(name) FUNC_NAME(name) ++#define FUNC_START(name) \ ++ .type FUNC_NAME(name),@function; \ ++ .globl FUNC_NAME(name); \ ++FUNC_NAME(name): \ ++0: addis 2,12,(.TOC.-0b)@ha; \ ++ addi 2,2,(.TOC.-0b)@l; \ ++ .localentry FUNC_NAME(name),.-FUNC_NAME(name) ++ ++#define HIDDEN_FUNC(name) \ ++ FUNC_START(name) \ ++ .hidden FUNC_NAME(name); ++ ++#define FUNC_END(name) \ ++ .size FUNC_NAME(name),.-FUNC_NAME(name) ++ ++#elif defined (__powerpc64__) ++ ++#define FUNC_NAME(name) GLUE(.,name) ++#define JUMP_TARGET(name) FUNC_NAME(name) ++#define FUNC_START(name) \ ++ .section ".opd","aw"; \ ++name: \ ++ .quad GLUE(.,name); \ ++ .quad .TOC.@tocbase; \ ++ .quad 0; \ ++ .previous; \ ++ .type GLUE(.,name),@function; \ ++ .globl name; \ ++ .globl GLUE(.,name); \ ++GLUE(.,name): ++ ++#define HIDDEN_FUNC(name) \ ++ FUNC_START(name) \ ++ .hidden name; \ ++ .hidden GLUE(.,name); ++ ++#define FUNC_END(name) \ ++GLUE(.L,name): \ ++ .size GLUE(.,name),GLUE(.L,name)-GLUE(.,name) ++ ++#elif defined(_CALL_AIXDESC) ++ ++#ifdef _RELOCATABLE ++#define DESC_SECTION ".got2" ++#else ++#define DESC_SECTION ".got1" ++#endif ++ ++#define FUNC_NAME(name) GLUE(.,name) ++#define JUMP_TARGET(name) FUNC_NAME(name) ++#define FUNC_START(name) \ ++ .section DESC_SECTION,"aw"; \ ++name: \ ++ .long GLUE(.,name); \ ++ .long _GLOBAL_OFFSET_TABLE_; \ ++ .long 0; \ ++ .previous; \ ++ .type GLUE(.,name),@function; \ ++ .globl name; \ ++ .globl GLUE(.,name); \ ++GLUE(.,name): ++ ++#define HIDDEN_FUNC(name) \ ++ FUNC_START(name) \ ++ .hidden name; \ ++ .hidden GLUE(.,name); ++ ++#define FUNC_END(name) \ ++GLUE(.L,name): \ ++ .size GLUE(.,name),GLUE(.L,name)-GLUE(.,name) ++ ++#else ++ ++#define FUNC_NAME(name) GLUE(__USER_LABEL_PREFIX__,name) ++#if defined __PIC__ || defined __pic__ ++#define JUMP_TARGET(name) FUNC_NAME(name@plt) ++#else ++#define JUMP_TARGET(name) FUNC_NAME(name) ++#endif ++#define FUNC_START(name) \ ++ .type FUNC_NAME(name),@function; \ ++ .globl FUNC_NAME(name); \ ++FUNC_NAME(name): ++ ++#define HIDDEN_FUNC(name) \ ++ FUNC_START(name) \ ++ .hidden FUNC_NAME(name); ++ ++#define FUNC_END(name) \ ++GLUE(.L,name): \ ++ .size FUNC_NAME(name),GLUE(.L,name)-FUNC_NAME(name) ++#endif ++ ++#ifdef IN_GCC ++/* For HAVE_GAS_CFI_DIRECTIVE. */ ++#include "auto-host.h" ++ ++#ifdef HAVE_GAS_CFI_DIRECTIVE ++# define CFI_STARTPROC .cfi_startproc ++# define CFI_ENDPROC .cfi_endproc ++# define CFI_OFFSET(reg, off) .cfi_offset reg, off ++# define CFI_DEF_CFA_REGISTER(reg) .cfi_def_cfa_register reg ++# define CFI_RESTORE(reg) .cfi_restore reg ++#else ++# define CFI_STARTPROC ++# define CFI_ENDPROC ++# define CFI_OFFSET(reg, off) ++# define CFI_DEF_CFA_REGISTER(reg) ++# define CFI_RESTORE(reg) ++#endif ++#endif ++ ++#if defined __linux__ ++ .section .note.GNU-stack ++ .previous ++#endif Property changes on: head/net/ceph14/files/patch-src_common_ppc-asm.h ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/net/ceph14/files/patch-src_common_ppc-opcode.h =================================================================== --- head/net/ceph14/files/patch-src_common_ppc-opcode.h (nonexistent) +++ head/net/ceph14/files/patch-src_common_ppc-opcode.h (revision 559984) @@ -0,0 +1,37 @@ +--- src/common/ppc-opcode.h.orig 2021-01-02 03:38:42.248054000 +0100 ++++ src/common/ppc-opcode.h 2021-01-02 03:38:24.647268000 +0100 +@@ -0,0 +1,34 @@ ++/* ++ * Copyright (C) 2015 Anton Blanchard , IBM ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of either: ++ * ++ * a) the GNU General Public License as published by the Free Software ++ * Foundation; either version 2 of the License, or (at your option) ++ * any later version, or ++ * b) the Apache License, Version 2.0 ++ */ ++#ifndef __OPCODES_H ++#define __OPCODES_H ++ ++#define __PPC_RA(a) (((a) & 0x1f) << 16) ++#define __PPC_RB(b) (((b) & 0x1f) << 11) ++#define __PPC_XA(a) ((((a) & 0x1f) << 16) | (((a) & 0x20) >> 3)) ++#define __PPC_XB(b) ((((b) & 0x1f) << 11) | (((b) & 0x20) >> 4)) ++#define __PPC_XS(s) ((((s) & 0x1f) << 21) | (((s) & 0x20) >> 5)) ++#define __PPC_XT(s) __PPC_XS(s) ++#define VSX_XX3(t, a, b) (__PPC_XT(t) | __PPC_XA(a) | __PPC_XB(b)) ++#define VSX_XX1(s, a, b) (__PPC_XS(s) | __PPC_RA(a) | __PPC_RB(b)) ++ ++#define PPC_INST_VPMSUMW 0x10000488 ++#define PPC_INST_VPMSUMD 0x100004c8 ++#define PPC_INST_MFVSRD 0x7c000066 ++#define PPC_INST_MTVSRD 0x7c000166 ++ ++#define VPMSUMW(t, a, b) .long PPC_INST_VPMSUMW | VSX_XX3((t), a, b) ++#define VPMSUMD(t, a, b) .long PPC_INST_VPMSUMD | VSX_XX3((t), a, b) ++#define MFVRD(a, t) .long PPC_INST_MFVSRD | VSX_XX1((t)+32, a, 0) ++#define MTVRD(t, a) .long PPC_INST_MTVSRD | VSX_XX1((t)+32, a, 0) ++ ++#endif Property changes on: head/net/ceph14/files/patch-src_common_ppc-opcode.h ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property