lang_record_phdrs ();
lang_process (){  lang_reasonable_defaults ();  current_target = default_target;  lang_for_each_statement (ldlang_open_output);	/* Open the output file */  ldemul_create_output_section_statements ();  /* Add to the hash table all undefineds on the command line */  lang_place_undefineds ();  /* Create a bfd for each input file */  current_target = default_target;  open_input_bfds (statement_list.head, false);  ldemul_after_open ();  /* Build all sets based on the information gathered from the input     files.  */  ldctor_build_sets ();  /* Size up the common data */  lang_common ();  /* Run through the contours of the script and attatch input sections     to the correct output sections     */  map_input_to_output_sections (statement_list.head, (char *) NULL,				(lang_output_section_statement_type *) NULL);  /* Find any sections not attatched explicitly and handle them */  lang_place_orphans ();  ldemul_before_allocation ();  /* Now run around and relax if we can */  if (command_line.relax)    {      /* First time round is a trial run to get the 'worst case'	 addresses of the objects if there was no relaxing.  */      lang_size_sections (statement_list.head,			  abs_output_section,			  &(statement_list.head), 0, (bfd_vma) 0, false);      /* Keep relaxing until bfd_relax_section gives up.  */      do	{	  reset_memory_regions ();	  relax_again = false;	  /* Do all the assignments with our current guesses as to	     section sizes.  */	  lang_do_assignments (statement_list.head,			       abs_output_section,			       (fill_type) 0, (bfd_vma) 0);	  /* Perform another relax pass - this time we know where the	     globals are, so can make better guess.  */	  lang_size_sections (statement_list.head,			      abs_output_section,			      &(statement_list.head), 0, (bfd_vma) 0, true);	}      while (relax_again);    }  else    {      /* Size up the sections.  */      lang_size_sections (statement_list.head,			  abs_output_section,			  &(statement_list.head), 0, (bfd_vma) 0, false);    }  /* See if anything special should be done now we know how big     everything is.  */  ldemul_after_allocation ();  /* Fix any .startof. or .sizeof. symbols.  */  lang_set_startof ();  /* Do all the assignments, now that we know the final restingplaces     of all the symbols */  lang_do_assignments (statement_list.head,		       abs_output_section,		       (fill_type) 0, (bfd_vma) 0);  /* Make sure that we're not mixing architectures */  lang_check ();  /* Final stuffs */  ldemul_finish ();  lang_finish ();}