p->ok_to_load ? 0 : SEC_NEVER_LOAD,
p->ok_to_load ? 0 : noload_section,
mri_draw_tree (){  if (done_tree) return;  /* We don't bother with memory regions.  */#if 0  /* Create the regions */ {   lang_memory_region_type *r;   r = lang_memory_region_lookup("long");   r->current = r->origin = exp_get_vma(base, (bfd_vma)0, "origin",					lang_first_phase_enum);   r->length = (bfd_size_type) exp_get_vma(0, (bfd_vma) ~((bfd_size_type)0),					   "length", lang_first_phase_enum); }#endif    /* Now build the statements for the ldlang machine */  /* Attatch the addresses of any which have addresses, and add the     ones not mentioned */  if (address != (struct section_name_struct *)NULL) {    struct section_name_struct *alist;    struct section_name_struct *olist;    if (order == (struct section_name_struct *)NULL) {      order = address;    }    for (alist = address;	 alist != (struct section_name_struct*)NULL;	 alist = alist->next)     {      int done = 0;      for (olist = order;	   done == 0 &&	   olist != (struct section_name_struct *)NULL;	   olist = olist->next)       {	if (strcmp(alist->name, olist->name) == 0) 	{	  olist->vma = alist->vma;	  done = 1;	}      }      if (!done) {	/* add this onto end of order list */	mri_add_to_list(&order, alist->name, alist->vma, 0,0,0);      }    }  }  /* If we're only supposed to load a subset of them in, then prune     the list.  */  if (only_load != (struct section_name_struct *)NULL)   {    struct section_name_struct *ptr1;    struct section_name_struct *ptr2;    if (order == (struct section_name_struct*)NULL)     order = only_load;        /* See if this name is in the list, if it is then we can load it     */    for (ptr1 = only_load; ptr1; ptr1 = ptr1->next)     {      for (ptr2= order; ptr2; ptr2=ptr2->next)       {	if (strcmp(ptr2->name, ptr1->name)==0) {	  ptr2->ok_to_load = 1;	}      }    }  }  else   {    /* No only load list, so everything is ok to load */    struct section_name_struct *ptr;    for (ptr = order; ptr; ptr=ptr->next) {      ptr->ok_to_load = 1;    }  }  /* Create the order of sections to load */  if (order != (struct section_name_struct *)NULL)   {    /* Been told to output the sections in a certain order */    struct section_name_struct *p = order;    while (p)     {      struct section_name_struct *aptr;      etree_type *align = 0;      etree_type *subalign = 0;      /* See if an alignment has been specified */      for (aptr = alignment; aptr; aptr= aptr->next)      {	if (strcmp(aptr->name, p->name)==0) {	  align =  aptr->align;	}      }      for (aptr = subalignment; aptr; aptr= aptr->next)      {	if (strcmp(aptr->name, p->name)==0) {	  subalign =  aptr->subalign;	}      }      if (base == 0) {	base = p->vma ? p->vma :exp_nameop(NAME, ".");      }      lang_enter_output_section_statement (p->name, base,					   p->ok_to_load ? 0 : SEC_NEVER_LOAD,					   1, align, subalign,					   (etree_type *) NULL);      base = 0;      lang_add_wild(p->name, (char *)NULL);      /* If there is an alias for this section, add it too */      for (aptr = alias; aptr; aptr = aptr->next) {	if (strcmp(aptr->alias, p->name)== 0) {	  lang_add_wild(aptr->name, (char *)NULL);	}      }      lang_leave_output_section_statement	(0, "*default*", (struct lang_output_section_phdr_list *) NULL);      p = p->next;    }  }  done_tree = 1;}