Package init

This commit is contained in:
dogsheng 2019-12-14 21:39:48 +08:00
parent e0a5d14b05
commit 34e8035f23
5 changed files with 109 additions and 75 deletions

View File

@ -0,0 +1,75 @@
From beda5ec7a6848be20c0cac2a9a8ef2a41e8069c1 Mon Sep 17 00:00:00 2001
From: Frediano Ziglio <fziglio@redhat.com>
Date: Thu, 28 Jun 2018 21:30:21 +0100
Subject: [PATCH] qxl_dev: Align QXLRam to 4 bytes
This avoids compilers detect misaligned access which can lead to
warnings.
In QEMU the structure is allocated at the beginning of a 4Kb page,
in Xspice is allocated with a calloc, so the structure will end up 4
bytes aligned as well with these users. We are not aware of other users
of QXLRam, but if there was, it's likely the struct would be at least
naturally aligned, so this change should not impact anyone.
Aligning to 4 bytes maintains the size of the structure unchanged
avoiding possible ABI changes.
clang currently generates an invalid function call if a misaligned
4 byte atomic operation is detected.
This fixes https://bugzilla.redhat.com/show_bug.cgi?id=1565766
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Christophe Fergeau <cfergeau@redhat.com>
---
spice/end-packed.h | 1 +
spice/qxl_dev.h | 2 +-
spice/start-packed.h | 2 ++
3 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/spice/end-packed.h b/spice/end-packed.h
index 1acea18..0efd588 100644
--- a/spice/end-packed.h
+++ b/spice/end-packed.h
@@ -32,6 +32,7 @@
/* See start-packed.h for details */
#undef SPICE_ATTR_PACKED
+#undef SPICE_ATTR_ALIGNED
#if defined(__MINGW32__) || !defined(__GNUC__)
#pragma pack(pop)
diff --git a/spice/qxl_dev.h b/spice/qxl_dev.h
index 9e753c4..a9cc4f4 100644
--- a/spice/qxl_dev.h
+++ b/spice/qxl_dev.h
@@ -253,7 +253,7 @@ SPICE_RING_DECLARE(QXLReleaseRing, uint64_t, QXL_RELEASE_RING_SIZE);
#define QXL_INTERRUPT_CLIENT_MONITORS_CONFIG (1 << 5)
/* qxl-1 compat: append only */
-typedef struct SPICE_ATTR_PACKED QXLRam {
+typedef struct SPICE_ATTR_ALIGNED(4) SPICE_ATTR_PACKED QXLRam {
uint32_t magic;
uint32_t int_pending;
uint32_t int_mask;
diff --git a/spice/start-packed.h b/spice/start-packed.h
index ab3fa98..de0c595 100644
--- a/spice/start-packed.h
+++ b/spice/start-packed.h
@@ -48,6 +48,7 @@
#ifdef __GNUC__
#define SPICE_ATTR_PACKED __attribute__ ((__packed__))
+#define SPICE_ATTR_ALIGNED(n) __attribute__ ((__aligned__ (n)))
#ifdef __MINGW32__
#pragma pack(push,1)
@@ -58,6 +59,7 @@
#pragma pack(push)
#pragma pack(1)
#define SPICE_ATTR_PACKED
+#define SPICE_ATTR_ALIGNED(n) __declspec (align (n))
#pragma warning(disable:4200)
#pragma warning(disable:4103)
--
2.17.1

View File

@ -1,36 +0,0 @@
# spice-protocol
#### Description
{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**}
#### Software Architecture
Software architecture description
#### Installation
1. xxxx
2. xxxx
3. xxxx
#### Instructions
1. xxxx
2. xxxx
3. xxxx
#### Contribution
1. Fork the repository
2. Create Feat_xxx branch
3. Commit your code
4. Create Pull Request
#### Gitee Feature
1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md
2. Gitee blog [blog.gitee.com](https://blog.gitee.com)
3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore)
4. The most valuable open source project [GVP](https://gitee.com/gvp)
5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help)
6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)

View File

@ -1,39 +0,0 @@
# spice-protocol
#### 介绍
{**以下是码云平台说明,您可以替换此简介**
码云是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN。专为开发者提供稳定、高效、安全的云端软件开发协作平台
无论是个人、团队、或是企业,都能够用码云实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)}
#### 软件架构
软件架构说明
#### 安装教程
1. xxxx
2. xxxx
3. xxxx
#### 使用说明
1. xxxx
2. xxxx
3. xxxx
#### 参与贡献
1. Fork 本仓库
2. 新建 Feat_xxx 分支
3. 提交代码
4. 新建 Pull Request
#### 码云特技
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com)
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目
4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目
5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)

Binary file not shown.

34
spice-protocol.spec Normal file
View File

@ -0,0 +1,34 @@
Name: spice-protocol
Version: 0.12.14
Release: 3
Summary: Spice protocol header files
License: BSD and LGPLv2+
URL: http://www.spice-space.org/
Source0: http://www.spice-space.org/download/releases/%{name}-%{version}.tar.bz2
BuildArch: noarch
Patch1: 0001-qxl_dev-Align-QXLRam-to-4-bytes.patch
%description
This package provides header files describing the spice protocol and
the para-virtual graphics card QXL.
%prep
%autosetup -n %{name}-%{version} -p1
%build
%configure
make %{?_smp_mflags}
%install
%make_install
%files
%defattr(-,root,root)
%doc COPYING NEWS
%{_includedir}/spice-1/spice/*.h
%{_datadir}/pkgconfig/spice-protocol.pc
%changelog
* Mon Dec 9 2019 openEuler Buildteam <buildteam@openeuler.org> - 0.12.14-3
- Package init