Blame view

kernel/linux-rt-4.4.41/arch/mips/vdso/elf.S 1.81 KB
5113f6f70   김현기   kernel add
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
56
57
58
59
60
61
62
63
64
65
66
67
68
  /*
   * Copyright (C) 2015 Imagination Technologies
   * Author: Alex Smith <alex.smith@imgtec.com>
   *
   * 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.
   */
  
  #include "vdso.h"
  
  #include <linux/elfnote.h>
  #include <linux/version.h>
  
  ELFNOTE_START(Linux, 0, "a")
  	.long LINUX_VERSION_CODE
  ELFNOTE_END
  
  /*
   * The .MIPS.abiflags section must be defined with the FP ABI flags set
   * to 'any' to be able to link with both old and new libraries.
   * Newer toolchains are capable of automatically generating this, but we want
   * to work with older toolchains as well. Therefore, we define the contents of
   * this section here (under different names), and then genvdso will patch
   * it to have the correct name and type.
   *
   * We base the .MIPS.abiflags section on preprocessor definitions rather than
   * CONFIG_* because we need to match the particular ABI we are building the
   * VDSO for.
   *
   * See https://dmz-portal.mips.com/wiki/MIPS_O32_ABI_-_FR0_and_FR1_Interlinking
   * for the .MIPS.abiflags section description.
   */
  
  	.section .mips_abiflags, "a"
  	.align 3
  __mips_abiflags:
  	.hword	0		/* version */
  	.byte	__mips		/* isa_level */
  
  	/* isa_rev */
  #ifdef __mips_isa_rev
  	.byte	__mips_isa_rev
  #else
  	.byte	0
  #endif
  
  	/* gpr_size */
  #ifdef __mips64
  	.byte	2		/* AFL_REG_64 */
  #else
  	.byte	1		/* AFL_REG_32 */
  #endif
  
  	/* cpr1_size */
  #if (defined(__mips_isa_rev) && __mips_isa_rev >= 6) || defined(__mips64)
  	.byte	2		/* AFL_REG_64 */
  #else
  	.byte	1		/* AFL_REG_32 */
  #endif
  
  	.byte	0		/* cpr2_size (AFL_REG_NONE) */
  	.byte	0		/* fp_abi (Val_GNU_MIPS_ABI_FP_ANY) */
  	.word	0		/* isa_ext */
  	.word	0		/* ases */
  	.word	0		/* flags1 */
  	.word	0		/* flags2 */