Blame view

buildroot/buildroot-2016.08.1/package/cairo/0001-blackfin-build-fix.patch 2.64 KB
6b13f685e   김민수   BSP 최초 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
  Fix build on platforms where __USER_LABEL_PREFIX__ is not empty
  
  On most platforms, a C language symbol and its assembly equivalent are
  identical. However, on the Blackfin architecture, this isn't the case,
  the corresponding C language symbol in assembly is prepended with a
  "_". Blackfin therefore has __USER_LABEL_PREFIX__ defined to "_".
  
  Cairo already has some code to cope with __USER_LABEL_PREFIX__, but
  this code isn't completely correct: it prepends both assembly symbols
  and C symbols with __USER_LABEL_PREFIX__, which cannot work.
  
  This patch fixes that by using the existing slim_hidden_asmname() to
  define assembly symbols, and introduce a new slim_hidden_realname()
  for C symbols.
  
  Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
  
  Index: b/src/cairo-compiler-private.h
  ===================================================================
  --- a/src/cairo-compiler-private.h
  +++ b/src/cairo-compiler-private.h
  @@ -93,12 +93,13 @@
   	__asm__ (slim_hidden_asmname (internal))
   # define slim_hidden_def1(name, internal)				\
     extern __typeof (name) EXT_##name __asm__(slim_hidden_asmname(name))	\
  -	__attribute__((__alias__(slim_hidden_asmname(internal))))
  +	__attribute__((__alias__(slim_hidden_realname(internal))))
   # define slim_hidden_ulp		slim_hidden_ulp1(__USER_LABEL_PREFIX__)
   # define slim_hidden_ulp1(x)		slim_hidden_ulp2(x)
   # define slim_hidden_ulp2(x)		#x
   # define slim_hidden_asmname(name)	slim_hidden_asmname1(name)
   # define slim_hidden_asmname1(name)	slim_hidden_ulp #name
  +# define slim_hidden_realname(name)     #name
   #else
   # define slim_hidden_proto(name)		int _cairo_dummy_prototype(void)
   # define slim_hidden_proto_no_warn(name)	int _cairo_dummy_prototype(void)
  Index: b/util/cairo-script/cairo-script-private.h
  ===================================================================
  --- a/util/cairo-script/cairo-script-private.h
  +++ b/util/cairo-script/cairo-script-private.h
  @@ -109,12 +109,13 @@
   	__asm__ (slim_hidden_asmname (internal))
   # define slim_hidden_def1(name, internal)				\
     extern __typeof (name) EXT_##name __asm__(slim_hidden_asmname(name))	\
  -	__attribute__((__alias__(slim_hidden_asmname(internal))))
  +	__attribute__((__alias__(slim_hidden_realname(internal))))
   # define slim_hidden_ulp		slim_hidden_ulp1(__USER_LABEL_PREFIX__)
   # define slim_hidden_ulp1(x)		slim_hidden_ulp2(x)
   # define slim_hidden_ulp2(x)		#x
   # define slim_hidden_asmname(name)	slim_hidden_asmname1(name)
   # define slim_hidden_asmname1(name)	slim_hidden_ulp #name
  +# define slim_hidden_realname(name)     #name
   #else
   # define slim_hidden_proto(name)		int _csi_dummy_prototype(void)
   # define slim_hidden_proto_no_warn(name)	int _csi_dummy_prototype(void)