Hex Artifact Content
Not logged in

Artifact d1dd72cb745290675696fda82f61502237bc5b44:

Unrecognized artifact
0000: 2f 2f 20 43 6f 70 79 72 69 67 68 74 20 32 30 31  // Copyright 201
0010: 32 2d 32 30 31 36 20 54 68 65 20 52 75 73 74 20  2-2016 The Rust 
0020: 50 72 6f 6a 65 63 74 20 44 65 76 65 6c 6f 70 65  Project Develope
0030: 72 73 2e 20 53 65 65 20 74 68 65 20 43 4f 50 59  rs. See the COPY
0040: 52 49 47 48 54 0a 2f 2f 20 66 69 6c 65 20 61 74  RIGHT.// file at
0050: 20 74 68 65 20 74 6f 70 2d 6c 65 76 65 6c 20 64   the top-level d
0060: 69 72 65 63 74 6f 72 79 20 6f 66 20 74 68 69 73  irectory of this
0070: 20 64 69 73 74 72 69 62 75 74 69 6f 6e 20 61 6e   distribution an
0080: 64 20 61 74 0a 2f 2f 20 68 74 74 70 3a 2f 2f 72  d at.// http://r
0090: 75 73 74 2d 6c 61 6e 67 2e 6f 72 67 2f 43 4f 50  ust-lang.org/COP
00a0: 59 52 49 47 48 54 2e 0a 2f 2f 0a 2f 2f 20 4c 69  YRIGHT..//.// Li
00b0: 63 65 6e 73 65 64 20 75 6e 64 65 72 20 74 68 65  censed under the
00c0: 20 41 70 61 63 68 65 20 4c 69 63 65 6e 73 65 2c   Apache License,
00d0: 20 56 65 72 73 69 6f 6e 20 32 2e 30 20 3c 4c 49   Version 2.0 <LI
00e0: 43 45 4e 53 45 2d 41 50 41 43 48 45 20 6f 72 0a  CENSE-APACHE or.
00f0: 2f 2f 20 68 74 74 70 3a 2f 2f 77 77 77 2e 61 70  // http://www.ap
0100: 61 63 68 65 2e 6f 72 67 2f 6c 69 63 65 6e 73 65  ache.org/license
0110: 73 2f 4c 49 43 45 4e 53 45 2d 32 2e 30 3e 20 6f  s/LICENSE-2.0> o
0120: 72 20 74 68 65 20 4d 49 54 20 6c 69 63 65 6e 73  r the MIT licens
0130: 65 0a 2f 2f 20 3c 4c 49 43 45 4e 53 45 2d 4d 49  e.// <LICENSE-MI
0140: 54 20 6f 72 20 68 74 74 70 3a 2f 2f 6f 70 65 6e  T or http://open
0150: 73 6f 75 72 63 65 2e 6f 72 67 2f 6c 69 63 65 6e  source.org/licen
0160: 73 65 73 2f 4d 49 54 3e 2c 20 61 74 20 79 6f 75  ses/MIT>, at you
0170: 72 0a 2f 2f 20 6f 70 74 69 6f 6e 2e 20 54 68 69  r.// option. Thi
0180: 73 20 66 69 6c 65 20 6d 61 79 20 6e 6f 74 20 62  s file may not b
0190: 65 20 63 6f 70 69 65 64 2c 20 6d 6f 64 69 66 69  e copied, modifi
01a0: 65 64 2c 20 6f 72 20 64 69 73 74 72 69 62 75 74  ed, or distribut
01b0: 65 64 0a 2f 2f 20 65 78 63 65 70 74 20 61 63 63  ed.// except acc
01c0: 6f 72 64 69 6e 67 20 74 6f 20 74 68 6f 73 65 20  ording to those 
01d0: 74 65 72 6d 73 2e 0a 0a 75 73 65 20 4c 69 6e 6b  terms...use Link
01e0: 65 72 46 6c 61 76 6f 72 3b 0a 75 73 65 20 74 61  erFlavor;.use ta
01f0: 72 67 65 74 3a 3a 7b 54 61 72 67 65 74 2c 20 54  rget::{Target, T
0200: 61 72 67 65 74 52 65 73 75 6c 74 2c 20 52 65 6c  argetResult, Rel
0210: 72 6f 4c 65 76 65 6c 7d 3b 0a 0a 70 75 62 20 66  roLevel};..pub f
0220: 6e 20 74 61 72 67 65 74 28 29 20 2d 3e 20 54 61  n target() -> Ta
0230: 72 67 65 74 52 65 73 75 6c 74 20 7b 0a 20 20 20  rgetResult {.   
0240: 20 6c 65 74 20 6d 75 74 20 62 61 73 65 20 3d 20   let mut base = 
0250: 73 75 70 65 72 3a 3a 6c 69 6e 75 78 5f 62 61 73  super::linux_bas
0260: 65 3a 3a 6f 70 74 73 28 29 3b 0a 20 20 20 20 62  e::opts();.    b
0270: 61 73 65 2e 63 70 75 20 3d 20 22 70 70 63 36 34  ase.cpu = "ppc64
0280: 22 2e 74 6f 5f 73 74 72 69 6e 67 28 29 3b 0a 20  ".to_string();. 
0290: 20 20 20 62 61 73 65 2e 70 72 65 5f 6c 69 6e 6b     base.pre_link
02a0: 5f 61 72 67 73 2e 67 65 74 5f 6d 75 74 28 26 4c  _args.get_mut(&L
02b0: 69 6e 6b 65 72 46 6c 61 76 6f 72 3a 3a 47 63 63  inkerFlavor::Gcc
02c0: 29 2e 75 6e 77 72 61 70 28 29 2e 70 75 73 68 28  ).unwrap().push(
02d0: 22 2d 6d 36 34 22 2e 74 6f 5f 73 74 72 69 6e 67  "-m64".to_string
02e0: 28 29 29 3b 0a 20 20 20 20 62 61 73 65 2e 6d 61  ());.    base.ma
02f0: 78 5f 61 74 6f 6d 69 63 5f 77 69 64 74 68 20 3d  x_atomic_width =
0300: 20 53 6f 6d 65 28 36 34 29 3b 0a 0a 20 20 20 20   Some(64);..    
0310: 2f 2f 20 6c 64 2e 73 6f 20 69 6e 20 61 74 20 6c  // ld.so in at l
0320: 65 61 73 74 20 52 48 45 4c 36 20 6f 6e 20 70 70  east RHEL6 on pp
0330: 63 36 34 20 68 61 73 20 61 20 62 75 67 20 72 65  c64 has a bug re
0340: 6c 61 74 65 64 20 74 6f 20 42 49 4e 44 5f 4e 4f  lated to BIND_NO
0350: 57 2c 20 73 6f 20 6f 6e 6c 79 20 65 6e 61 62 6c  W, so only enabl
0360: 65 20 70 61 72 74 69 61 6c 20 52 45 4c 52 4f 0a  e partial RELRO.
0370: 20 20 20 20 2f 2f 20 66 6f 72 20 6e 6f 77 2e 20      // for now. 
0380: 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63  https://github.c
0390: 6f 6d 2f 72 75 73 74 2d 6c 61 6e 67 2f 72 75 73  om/rust-lang/rus
03a0: 74 2f 70 75 6c 6c 2f 34 33 31 37 30 23 69 73 73  t/pull/43170#iss
03b0: 75 65 63 6f 6d 6d 65 6e 74 2d 33 31 35 34 31 31  uecomment-315411
03c0: 34 37 34 0a 20 20 20 20 62 61 73 65 2e 72 65 6c  474.    base.rel
03d0: 72 6f 5f 6c 65 76 65 6c 20 3d 20 52 65 6c 72 6f  ro_level = Relro
03e0: 4c 65 76 65 6c 3a 3a 50 61 72 74 69 61 6c 3b 0a  Level::Partial;.
03f0: 0a 20 20 20 20 2f 2f 20 73 65 65 20 23 33 36 39  .    // see #369
0400: 39 34 0a 20 20 20 20 62 61 73 65 2e 65 78 65 5f  94.    base.exe_
0410: 61 6c 6c 6f 63 61 74 69 6f 6e 5f 63 72 61 74 65  allocation_crate
0420: 20 3d 20 4e 6f 6e 65 3b 0a 0a 20 20 20 20 4f 6b   = None;..    Ok
0430: 28 54 61 72 67 65 74 20 7b 0a 20 20 20 20 20 20  (Target {.      
0440: 20 20 6c 6c 76 6d 5f 74 61 72 67 65 74 3a 20 22    llvm_target: "
0450: 70 6f 77 65 72 70 63 36 34 2d 75 6e 6b 6e 6f 77  powerpc64-unknow
0460: 6e 2d 6c 69 6e 75 78 2d 67 6e 75 22 2e 74 6f 5f  n-linux-gnu".to_
0470: 73 74 72 69 6e 67 28 29 2c 0a 20 20 20 20 20 20  string(),.      
0480: 20 20 74 61 72 67 65 74 5f 65 6e 64 69 61 6e 3a    target_endian:
0490: 20 22 62 69 67 22 2e 74 6f 5f 73 74 72 69 6e 67   "big".to_string
04a0: 28 29 2c 0a 20 20 20 20 20 20 20 20 74 61 72 67  (),.        targ
04b0: 65 74 5f 70 6f 69 6e 74 65 72 5f 77 69 64 74 68  et_pointer_width
04c0: 3a 20 22 36 34 22 2e 74 6f 5f 73 74 72 69 6e 67  : "64".to_string
04d0: 28 29 2c 0a 20 20 20 20 20 20 20 20 74 61 72 67  (),.        targ
04e0: 65 74 5f 63 5f 69 6e 74 5f 77 69 64 74 68 3a 20  et_c_int_width: 
04f0: 22 33 32 22 2e 74 6f 5f 73 74 72 69 6e 67 28 29  "32".to_string()
0500: 2c 0a 20 20 20 20 20 20 20 20 64 61 74 61 5f 6c  ,.        data_l
0510: 61 79 6f 75 74 3a 20 22 45 2d 6d 3a 65 2d 69 36  ayout: "E-m:e-i6
0520: 34 3a 36 34 2d 6e 33 32 3a 36 34 22 2e 74 6f 5f  4:64-n32:64".to_
0530: 73 74 72 69 6e 67 28 29 2c 0a 20 20 20 20 20 20  string(),.      
0540: 20 20 61 72 63 68 3a 20 22 70 6f 77 65 72 70 63    arch: "powerpc
0550: 36 34 22 2e 74 6f 5f 73 74 72 69 6e 67 28 29 2c  64".to_string(),
0560: 0a 20 20 20 20 20 20 20 20 74 61 72 67 65 74 5f  .        target_
0570: 6f 73 3a 20 22 6c 69 6e 75 78 22 2e 74 6f 5f 73  os: "linux".to_s
0580: 74 72 69 6e 67 28 29 2c 0a 20 20 20 20 20 20 20  tring(),.       
0590: 20 74 61 72 67 65 74 5f 65 6e 76 3a 20 22 67 6e   target_env: "gn
05a0: 75 22 2e 74 6f 5f 73 74 72 69 6e 67 28 29 2c 0a  u".to_string(),.
05b0: 20 20 20 20 20 20 20 20 74 61 72 67 65 74 5f 76          target_v
05c0: 65 6e 64 6f 72 3a 20 22 75 6e 6b 6e 6f 77 6e 22  endor: "unknown"
05d0: 2e 74 6f 5f 73 74 72 69 6e 67 28 29 2c 0a 20 20  .to_string(),.  
05e0: 20 20 20 20 20 20 6c 69 6e 6b 65 72 5f 66 6c 61        linker_fla
05f0: 76 6f 72 3a 20 4c 69 6e 6b 65 72 46 6c 61 76 6f  vor: LinkerFlavo
0600: 72 3a 3a 47 63 63 2c 0a 20 20 20 20 20 20 20 20  r::Gcc,.        
0610: 6f 70 74 69 6f 6e 73 3a 20 62 61 73 65 2c 0a 20  options: base,. 
0620: 20 20 20 7d 29 0a 7d 0a                             }).}.