亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sunos.c

?? 基于4個mips核的noc設計
?? C
?? 第 1 頁 / 共 5 頁
字號:
      if ((h->flags & SUNOS_DEF_DYNAMIC) == 0	  || (h->flags & SUNOS_DEF_REGULAR) != 0)	continue;      if (dynobj == NULL)	{	  asection *sgot;	  if (! sunos_create_dynamic_sections (abfd, info, false))	    return false;	  dynobj = sunos_hash_table (info)->dynobj;	  splt = bfd_get_section_by_name (dynobj, ".plt");	  srel = bfd_get_section_by_name (dynobj, ".dynrel");	  BFD_ASSERT (splt != NULL && srel != NULL);	  sgot = bfd_get_section_by_name (dynobj, ".got");	  BFD_ASSERT (sgot != NULL);	  if (sgot->_raw_size == 0)	    sgot->_raw_size = BYTES_IN_WORD;	  sunos_hash_table (info)->got_needed = true;	}      BFD_ASSERT ((h->flags & SUNOS_REF_REGULAR) != 0);      BFD_ASSERT (h->plt_offset != 0		  || ((h->root.root.type == bfd_link_hash_defined		       || h->root.root.type == bfd_link_hash_defweak)		      ? (h->root.root.u.def.section->owner->flags			 & DYNAMIC) != 0		      : (h->root.root.u.undef.abfd->flags & DYNAMIC) != 0));      /* This reloc is against a symbol defined only by a dynamic	 object.  */      if (h->root.root.type == bfd_link_hash_undefined)	{	  /* Presumably this symbol was marked as being undefined by	     an earlier reloc.  */	  srel->_raw_size += RELOC_STD_SIZE;	}      else if ((h->root.root.u.def.section->flags & SEC_CODE) == 0)	{	  bfd *sub;	  /* This reloc is not in the .text section.  It must be	     copied into the dynamic relocs.  We mark the symbol as	     being undefined.  */	  srel->_raw_size += RELOC_STD_SIZE;	  sub = h->root.root.u.def.section->owner;	  h->root.root.type = bfd_link_hash_undefined;	  h->root.root.u.undef.abfd = sub;	}      else	{	  /* This symbol is in the .text section.  We must give it an	     entry in the procedure linkage table, if we have not	     already done so.  We change the definition of the symbol	     to the .plt section; this will cause relocs against it to	     be handled correctly.  */	  if (h->plt_offset == 0)	    {	      if (splt->_raw_size == 0)		splt->_raw_size = M68K_PLT_ENTRY_SIZE;	      h->plt_offset = splt->_raw_size;	      if ((h->flags & SUNOS_DEF_REGULAR) == 0)		{		  h->root.root.u.def.section = splt;		  h->root.root.u.def.value = splt->_raw_size;		}	      splt->_raw_size += M68K_PLT_ENTRY_SIZE;	      /* We may also need a dynamic reloc entry.  */	      if ((h->flags & SUNOS_DEF_REGULAR) == 0)		srel->_raw_size += RELOC_STD_SIZE;	    }	}    }  return true;}/* Scan the relocs for an input section using extended relocs.  We   need to figure out what to do for each reloc against a dynamic   symbol.  If the reloc is a WDISP30, and the symbol is in the .text   section, an entry is made in the procedure linkage table.   Otherwise, we must preserve the reloc as a dynamic reloc.  */static booleansunos_scan_ext_relocs (info, abfd, sec, relocs, rel_size)     struct bfd_link_info *info;     bfd *abfd;     asection *sec ATTRIBUTE_UNUSED;     const struct reloc_ext_external *relocs;     bfd_size_type rel_size;{  bfd *dynobj;  struct sunos_link_hash_entry **sym_hashes;  const struct reloc_ext_external *rel, *relend;  asection *splt = NULL;  asection *sgot = NULL;  asection *srel = NULL;  /* We only know how to handle SPARC plt entries.  */  if (bfd_get_arch (abfd) != bfd_arch_sparc)    {      bfd_set_error (bfd_error_invalid_target);      return false;    }  dynobj = NULL;  sym_hashes = (struct sunos_link_hash_entry **) obj_aout_sym_hashes (abfd);  relend = relocs + rel_size / RELOC_EXT_SIZE;  for (rel = relocs; rel < relend; rel++)    {      unsigned int r_index;      int r_extern;      int r_type;      struct sunos_link_hash_entry *h = NULL;      /* Swap in the reloc information.  */      if (bfd_header_big_endian (abfd))	{	  r_index = ((rel->r_index[0] << 16)		     | (rel->r_index[1] << 8)		     | rel->r_index[2]);	  r_extern = (0 != (rel->r_type[0] & RELOC_EXT_BITS_EXTERN_BIG));	  r_type = ((rel->r_type[0] & RELOC_EXT_BITS_TYPE_BIG)		    >> RELOC_EXT_BITS_TYPE_SH_BIG);	}      else	{	  r_index = ((rel->r_index[2] << 16)		     | (rel->r_index[1] << 8)		     | rel->r_index[0]);	  r_extern = (0 != (rel->r_type[0] & RELOC_EXT_BITS_EXTERN_LITTLE));	  r_type = ((rel->r_type[0] & RELOC_EXT_BITS_TYPE_LITTLE)		    >> RELOC_EXT_BITS_TYPE_SH_LITTLE);	}      if (r_extern)	{	  h = sym_hashes[r_index];	  if (h == NULL)	    {	      /* This should not normally happen, but it will in any		 case be caught in the relocation phase.  */	      continue;	    }	}      /* If this is a base relative reloc, we need to make an entry in         the .got section.  */      if (r_type == RELOC_BASE10	  || r_type == RELOC_BASE13	  || r_type == RELOC_BASE22)	{	  if (dynobj == NULL)	    {	      if (! sunos_create_dynamic_sections (abfd, info, false))		return false;	      dynobj = sunos_hash_table (info)->dynobj;	      splt = bfd_get_section_by_name (dynobj, ".plt");	      sgot = bfd_get_section_by_name (dynobj, ".got");	      srel = bfd_get_section_by_name (dynobj, ".dynrel");	      BFD_ASSERT (splt != NULL && sgot != NULL && srel != NULL);	      /* Make sure we have an initial entry in the .got table.  */	      if (sgot->_raw_size == 0)		sgot->_raw_size = BYTES_IN_WORD;	      sunos_hash_table (info)->got_needed = true;	    }	  if (r_extern)	    {	      if (h->got_offset != 0)		continue;	      h->got_offset = sgot->_raw_size;	    }	  else	    {	      if (r_index >= bfd_get_symcount (abfd))		{		  /* This is abnormal, but should be caught in the		     relocation phase.  */		  continue;		}	      if (adata (abfd).local_got_offsets == NULL)		{		  adata (abfd).local_got_offsets =		    (bfd_vma *) bfd_zalloc (abfd,					    (bfd_get_symcount (abfd)					     * sizeof (bfd_vma)));		  if (adata (abfd).local_got_offsets == NULL)		    return false;		}	      if (adata (abfd).local_got_offsets[r_index] != 0)		continue;	      adata (abfd).local_got_offsets[r_index] = sgot->_raw_size;	    }	  sgot->_raw_size += BYTES_IN_WORD;	  /* If we are making a shared library, or if the symbol is	     defined by a dynamic object, we will need a dynamic reloc	     entry.  */	  if (info->shared	      || (h != NULL		  && (h->flags & SUNOS_DEF_DYNAMIC) != 0		  && (h->flags & SUNOS_DEF_REGULAR) == 0))	    srel->_raw_size += RELOC_EXT_SIZE;	  continue;	}      /* Otherwise, we are only interested in relocs against symbols         defined in dynamic objects but not in regular objects.  We         only need to consider relocs against external symbols.  */      if (! r_extern)	{	  /* But, if we are creating a shared library, we need to             generate an absolute reloc.  */	  if (info->shared)	    {	      if (dynobj == NULL)		{		  if (! sunos_create_dynamic_sections (abfd, info, true))		    return false;		  dynobj = sunos_hash_table (info)->dynobj;		  splt = bfd_get_section_by_name (dynobj, ".plt");		  sgot = bfd_get_section_by_name (dynobj, ".got");		  srel = bfd_get_section_by_name (dynobj, ".dynrel");		  BFD_ASSERT (splt != NULL && sgot != NULL && srel != NULL);		}	      srel->_raw_size += RELOC_EXT_SIZE;	    }	  continue;	}      /* At this point common symbols have already been allocated, so	 we don't have to worry about them.  We need to consider that	 we may have already seen this symbol and marked it undefined;	 if the symbol is really undefined, then SUNOS_DEF_DYNAMIC	 will be zero.  */      if (h->root.root.type != bfd_link_hash_defined	  && h->root.root.type != bfd_link_hash_defweak	  && h->root.root.type != bfd_link_hash_undefined)	continue;      if (r_type != RELOC_JMP_TBL	  && ! info->shared	  && ((h->flags & SUNOS_DEF_DYNAMIC) == 0	      || (h->flags & SUNOS_DEF_REGULAR) != 0))	continue;      if (r_type == RELOC_JMP_TBL	  && ! info->shared	  && (h->flags & SUNOS_DEF_DYNAMIC) == 0	  && (h->flags & SUNOS_DEF_REGULAR) == 0)	{	  /* This symbol is apparently undefined.  Don't do anything             here; just let the relocation routine report an undefined             symbol.  */	  continue;	}      if (strcmp (h->root.root.root.string, "__GLOBAL_OFFSET_TABLE_") == 0)	continue;      if (dynobj == NULL)	{	  if (! sunos_create_dynamic_sections (abfd, info, false))	    return false;	  dynobj = sunos_hash_table (info)->dynobj;	  splt = bfd_get_section_by_name (dynobj, ".plt");	  sgot = bfd_get_section_by_name (dynobj, ".got");	  srel = bfd_get_section_by_name (dynobj, ".dynrel");	  BFD_ASSERT (splt != NULL && sgot != NULL && srel != NULL);	  /* Make sure we have an initial entry in the .got table.  */	  if (sgot->_raw_size == 0)	    sgot->_raw_size = BYTES_IN_WORD;	  sunos_hash_table (info)->got_needed = true;	}      BFD_ASSERT (r_type == RELOC_JMP_TBL		  || info->shared		  || (h->flags & SUNOS_REF_REGULAR) != 0);      BFD_ASSERT (r_type == RELOC_JMP_TBL		  || info->shared		  || h->plt_offset != 0		  || ((h->root.root.type == bfd_link_hash_defined		       || h->root.root.type == bfd_link_hash_defweak)		      ? (h->root.root.u.def.section->owner->flags			 & DYNAMIC) != 0		      : (h->root.root.u.undef.abfd->flags & DYNAMIC) != 0));      /* This reloc is against a symbol defined only by a dynamic	 object, or it is a jump table reloc from PIC compiled code.  */      if (r_type != RELOC_JMP_TBL	  && h->root.root.type == bfd_link_hash_undefined)	{	  /* Presumably this symbol was marked as being undefined by	     an earlier reloc.  */	  srel->_raw_size += RELOC_EXT_SIZE;	}      else if (r_type != RELOC_JMP_TBL	       && (h->root.root.u.def.section->flags & SEC_CODE) == 0)	{	  bfd *sub;	  /* This reloc is not in the .text section.  It must be	     copied into the dynamic relocs.  We mark the symbol as	     being undefined.  */	  srel->_raw_size += RELOC_EXT_SIZE;	  if ((h->flags & SUNOS_DEF_REGULAR) == 0)	    {	      sub = h->root.root.u.def.section->owner;	      h->root.root.type = bfd_link_hash_undefined;	      h->root.root.u.undef.abfd = sub;	    }	}      else	{	  /* This symbol is in the .text section.  We must give it an	     entry in the procedure linkage table, if we have not	     already done so.  We change the definition of the symbol	     to the .plt section; this will cause relocs against it to	     be handled correctly.  */	  if (h->plt_offset == 0)	    {	      if (splt->_raw_size == 0)		splt->_raw_size = SPARC_PLT_ENTRY_SIZE;	      h->plt_offset = splt->_raw_size;	      if ((h->flags & SUNOS_DEF_REGULAR) == 0)		{		  if (h->root.root.type == bfd_link_hash_undefined)		    h->root.root.type = bfd_link_hash_defined;		  h->root.root.u.def.section = splt;		  h->root.root.u.def.value = splt->_raw_size;		}	      splt->_raw_size += SPARC_PLT_ENTRY_SIZE;	      /* We will also need a dynamic reloc entry, unless this                 is a JMP_TBL reloc produced by linking PIC compiled                 code, and we are not making a shared library.  */	      if (info->shared || (h->flags & SUNOS_DEF_REGULAR) == 0)		srel->_raw_size += RELOC_EXT_SIZE;	    }	  /* If we are creating a shared library, we need to copy over             any reloc other than a jump table reloc.  */	  if (info->shared && r_type != RELOC_JMP_TBL)	    srel->_raw_size += RELOC_EXT_SIZE;	}    }  return true;}/* Build the hash table of dynamic symbols, and to mark as written all   symbols from dynamic objects which we do not plan to write out.  */static booleansunos_scan_dynamic_symbol (h, data)     struct sunos_link_hash_entry *h;     PTR data;{  struct bfd_link_info *info = (struct bfd_link_info *) data;  /* Set the written flag for symbols we do not want to write out as     part of the regular symbol table.  This is all symbols which are     not defined in a regular object file.  For some reason symbols     which are referenced by a regular object and defined by a dynamic     object do not seem to show up in the regular symbol table.  It is     possible for a symbol to have only SUNOS_REF_REGULAR set here, it     is an undefined symbol which was turned into a common symbol     because it was found in an archive object which was not included     in the link.  */  if ((h->flags & SUNOS_DEF_REGULAR) == 0      && (h->flags & SUNOS_DEF_DYNAMIC) != 0      && strcmp (h->root.root.root.string, "__DYNAMIC") != 0)    h->root.written = true;  /* If this symbol is defined by a dynamic object and referenced by a     regular object, see whether we gave it a reasonable value while     scanning the relocs.  */  if ((h->flags & SUNOS_DEF_REGULAR) == 0      && (h->flags & SUNOS_DEF_DYNAMIC) != 0      && (h->flags & SUNOS_REF_REGULAR) != 0)    {      if ((h->root.root.type == bfd_link_hash_defined	   || h->root.root.type == bfd_link_hash_defweak)	  && ((h->root.root.u.def.section->owner->flags & DYNAMIC) != 0)	  && h->root.root.u.def.section->output_section == NULL)	{	  bfd *sub;	  /* This symbol is currently defined in a dynamic section	     which is not being put into the output file.  This	     implies that there is no reloc against the symbol.  I'm	     not sure why this case would ever occur.  In any case, we	     change the symbol to be undefined.  */	  sub = h->root.root.u.def.section->owner;	  h->root.root.type = bfd_link_hash_undefined;	  h-

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产网站| 91麻豆精品国产91久久久 | 狠狠色狠狠色合久久伊人| 国产69精品一区二区亚洲孕妇| 欧美性一区二区| 日本一区二区动态图| 日韩高清不卡一区二区三区| 91网站最新网址| 国产人妖乱国产精品人妖| 奇米888四色在线精品| 欧美剧情电影在线观看完整版免费励志电影 | 久久精品免费观看| 亚洲综合色视频| 国产一区二区精品久久| 欧美私模裸体表演在线观看| 国产精品美女一区二区三区| 国精品**一区二区三区在线蜜桃| 欧美老女人在线| 日欧美一区二区| 欧美亚洲一区三区| 亚洲一二三四在线| 欧美在线观看你懂的| 一区二区三区在线观看动漫| 不卡在线视频中文字幕| 国产精品久久毛片| www.一区二区| **欧美大码日韩| 波多野结衣中文一区| 亚洲国产经典视频| av一区二区久久| 亚洲美女精品一区| 在线免费精品视频| 香港成人在线视频| 欧美一级在线观看| 久久99热狠狠色一区二区| 精品久久久久99| 韩国精品久久久| 国产农村妇女毛片精品久久麻豆| 国产乱码精品1区2区3区| 欧美国产欧美综合| 色94色欧美sute亚洲线路一久 | 欧美色倩网站大全免费| 亚洲福利一二三区| 欧美一区二区三区免费在线看| 日韩二区在线观看| 久久久久国产一区二区三区四区 | 国产精品美日韩| 色综合久久天天| 性做久久久久久久免费看| 欧美一区二区私人影院日本| 美国精品在线观看| 日本一区二区成人在线| 色悠悠亚洲一区二区| 香蕉av福利精品导航| 亚洲视频免费在线| 欧美喷潮久久久xxxxx| 久久99九九99精品| 欧美国产禁国产网站cc| 欧美图区在线视频| 精品一二三四在线| 亚洲欧美日韩在线| 精品久久久久香蕉网| 99久久国产综合精品女不卡| 日韩国产精品久久久久久亚洲| 欧美精品一区二区在线播放| 日本精品一级二级| 久久国产欧美日韩精品| 亚洲欧洲av在线| 日韩一区二区不卡| 99视频有精品| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲国产精品国自产拍av| 欧美日韩在线不卡| 成人在线视频一区二区| 午夜成人免费视频| 国产精品高潮呻吟| 日韩精品资源二区在线| 欧美少妇性性性| 成人动漫av在线| 久久不见久久见免费视频1| 亚洲激情图片小说视频| 久久久久免费观看| 88在线观看91蜜桃国自产| www.99精品| 国产一区二区看久久| 日韩一区精品视频| 一区免费观看视频| 国产亚洲一本大道中文在线| 欧美卡1卡2卡| 欧美日韩在线综合| 91久久奴性调教| av男人天堂一区| 懂色av一区二区三区免费观看| 麻豆精品一区二区三区| 亚洲伊人伊色伊影伊综合网| 自拍av一区二区三区| 久久精品视频一区二区| 日韩免费高清av| 日韩免费性生活视频播放| 欧美色图在线观看| 欧美在线视频你懂得| 99re视频精品| 不卡影院免费观看| 99精品视频一区二区| 国产91丝袜在线18| 欧美日韩国产高清一区二区三区| 国产iv一区二区三区| 国产一区二区三区免费观看| 韩国成人精品a∨在线观看| 六月丁香综合在线视频| 日韩高清不卡在线| 美女一区二区在线观看| 久久精品国产久精国产爱| 日韩av二区在线播放| 日韩黄色在线观看| 奇米精品一区二区三区在线观看一| 午夜视黄欧洲亚洲| 奇米色777欧美一区二区| 美女国产一区二区三区| 久久99国产乱子伦精品免费| 国产精品一区免费在线观看| 成人黄色软件下载| 色婷婷久久综合| 91精品国产麻豆| 久久久综合视频| 国产精品亲子乱子伦xxxx裸| 中文字幕一区二区三区不卡在线| 中文字幕在线免费不卡| 伊人婷婷欧美激情| 日韩二区三区四区| 国产福利不卡视频| 91社区在线播放| 欧美日韩免费观看一区二区三区| 欧美一区二区三区在线观看| 精品sm捆绑视频| 日韩美女啊v在线免费观看| 午夜婷婷国产麻豆精品| 老司机免费视频一区二区三区| 国产一区二区伦理| 91电影在线观看| 日韩午夜精品电影| 欧美高清在线视频| 亚洲国产日韩精品| 经典三级视频一区| 欧美变态tickling挠脚心| 国产欧美一区二区精品婷婷| 亚洲精品午夜久久久| 另类专区欧美蜜桃臀第一页| 成人激情动漫在线观看| 7777精品伊人久久久大香线蕉完整版 | 国产成人自拍在线| 欧美日免费三级在线| 欧美mv和日韩mv的网站| 亚洲男同性视频| 精品在线免费观看| 欧美性xxxxxxxx| 中文字幕高清一区| 麻豆精品精品国产自在97香蕉| av资源网一区| 久久伊人蜜桃av一区二区| 夜夜操天天操亚洲| 成人av在线资源网站| 欧美一级久久久久久久大片| 亚洲精品成人在线| 国产69精品久久久久毛片| 日韩一区二区电影| 亚洲国产精品久久久久秋霞影院| 懂色av噜噜一区二区三区av | 99久久精品国产观看| 欧美videos中文字幕| 一区二区三区在线看| 国产69精品一区二区亚洲孕妇| 欧美一区二区三区系列电影| 亚洲一区在线免费观看| 不卡高清视频专区| 久久女同互慰一区二区三区| 日韩电影在线免费观看| 在线观看成人免费视频| 日韩主播视频在线| 欧美日韩中文精品| 一区二区三区波多野结衣在线观看| 国产超碰在线一区| 精品成人一区二区三区| 免费高清在线视频一区·| 欧美巨大另类极品videosbest| 亚洲资源中文字幕| 91视频免费看| 伊人开心综合网| 日本高清不卡在线观看| 一区二区三区免费在线观看| 色综合久久88色综合天天免费| 国产精品电影院| 成人黄色一级视频| 综合激情成人伊人| 99精品视频一区二区三区| 亚洲欧洲日韩在线| 不卡的av网站| 亚洲日穴在线视频| 欧美午夜不卡视频| 午夜精品在线看|