Home | History | Annotate | Download | only in binutils
      1 diff --git a/gold/gold.cc b/gold/gold.cc
      2 index 4833aec..bdfb33d 100644
      3 --- a/gold/gold.cc
      4 +++ b/gold/gold.cc
      5 @@ -808,6 +808,8 @@ queue_final_tasks(const General_options& options,
      6    if (!any_postprocessing_sections)
      7      {
      8        input_sections_blocker = new Task_token(true);
      9 +      // Write_symbols_task, Relocate_tasks.
     10 +      input_sections_blocker->add_blocker();
     11        input_sections_blocker->add_blockers(input_objects->number_of_relobjs());
     12      }
     13  
     14 @@ -836,6 +838,7 @@ queue_final_tasks(const General_options& options,
     15  
     16    // Queue a task to write out the output sections.
     17    workqueue->queue(new Write_sections_task(layout, of, output_sections_blocker,
     18 +					   input_sections_blocker,
     19  					   final_blocker));
     20  
     21    // Queue a task to write out everything else.
     22 diff --git a/gold/layout.cc b/gold/layout.cc
     23 index 82db775..ef0a879 100644
     24 --- a/gold/layout.cc
     25 +++ b/gold/layout.cc
     26 @@ -5532,6 +5532,8 @@ void
     27  Write_sections_task::locks(Task_locker* tl)
     28  {
     29    tl->add(this, this->output_sections_blocker_);
     30 +  if (this->input_sections_blocker_ != NULL)
     31 +    tl->add(this, this->input_sections_blocker_);
     32    tl->add(this, this->final_blocker_);
     33  }
     34  
     35 diff --git a/gold/layout.h b/gold/layout.h
     36 index 7c0113c..032f5f3 100644
     37 --- a/gold/layout.h
     38 +++ b/gold/layout.h
     39 @@ -1454,9 +1454,11 @@ class Write_sections_task : public Task
     40   public:
     41    Write_sections_task(const Layout* layout, Output_file* of,
     42  		      Task_token* output_sections_blocker,
     43 +		      Task_token* input_sections_blocker,
     44  		      Task_token* final_blocker)
     45      : layout_(layout), of_(of),
     46        output_sections_blocker_(output_sections_blocker),
     47 +      input_sections_blocker_(input_sections_blocker),
     48        final_blocker_(final_blocker)
     49    { }
     50  
     51 @@ -1481,6 +1483,7 @@ class Write_sections_task : public Task
     52    const Layout* layout_;
     53    Output_file* of_;
     54    Task_token* output_sections_blocker_;
     55 +  Task_token* input_sections_blocker_;
     56    Task_token* final_blocker_;
     57  };
     58  
     59 diff --git a/gold/testsuite/Makefile.am b/gold/testsuite/Makefile.am
     60 index dd06d5f..35cd013 100644
     61 --- a/gold/testsuite/Makefile.am
     62 +++ b/gold/testsuite/Makefile.am
     63 @@ -2380,10 +2380,9 @@ endif DEFAULT_TARGET_X86_64
     64  if DEFAULT_TARGET_X86_64
     65  check_PROGRAMS += exception_x86_64_bnd_test
     66  exception_x86_64_bnd_test_SOURCES = exception_test_main.cc
     67 -exception_x86_64_bnd_test_DEPENDENCIES = exception_x86_64_bnd_1.o \
     68 -					 exception_x86_64_bnd_2.o
     69 +exception_x86_64_bnd_test_DEPENDENCIES = gcctestdir/ld exception_x86_64_bnd_1.o exception_x86_64_bnd_2.o
     70  exception_x86_64_bnd_test_LDFLAGS = $(exception_test_LDFLAGS)
     71 -exception_x86_64_bnd_test_LDADD = $(exception_x86_64_bnd_test_DEPENDENCIES)
     72 +exception_x86_64_bnd_test_LDADD = exception_x86_64_bnd_1.o exception_x86_64_bnd_2.o
     73  exception_x86_64_bnd_1.o: exception_test_1.cc gcctestdir/as
     74  	$(CXXCOMPILE) -c -fpic -Bgcctestdir/ -Wa,-madd-bnd-prefix -o $@ $<
     75  exception_x86_64_bnd_2.o: exception_test_2.cc gcctestdir/as
     76 diff --git a/gold/testsuite/Makefile.in b/gold/testsuite/Makefile.in
     77 index fed610f..8fbb644 100644
     78 --- a/gold/testsuite/Makefile.in
     79 +++ b/gold/testsuite/Makefile.in
     80 @@ -2732,11 +2732,9 @@ LDADD = libgoldtest.a ../libgold.a ../../libiberty/libiberty.a $(LIBINTL) \
     81  @GCC_TRUE@@NATIVE_LINKER_TRUE@ehdr_start_test_5_LDFLAGS = -Bgcctestdir/
     82  @GCC_TRUE@@NATIVE_LINKER_TRUE@ehdr_start_test_5_LDADD = 
     83  @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_x86_64_bnd_test_SOURCES = exception_test_main.cc
     84 -@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_x86_64_bnd_test_DEPENDENCIES = exception_x86_64_bnd_1.o \
     85 -@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@					 exception_x86_64_bnd_2.o
     86 -
     87 +@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_x86_64_bnd_test_DEPENDENCIES = gcctestdir/ld exception_x86_64_bnd_1.o exception_x86_64_bnd_2.o
     88  @DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_x86_64_bnd_test_LDFLAGS = $(exception_test_LDFLAGS)
     89 -@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_x86_64_bnd_test_LDADD = $(exception_x86_64_bnd_test_DEPENDENCIES)
     90 +@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_x86_64_bnd_test_LDADD = exception_x86_64_bnd_1.o exception_x86_64_bnd_2.o
     91  @DEFAULT_TARGET_I386_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@SPLIT_DEFSYMS = --defsym __morestack=0x100 --defsym __morestack_non_split=0x200
     92  @DEFAULT_TARGET_X86_64_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@SPLIT_DEFSYMS = --defsym __morestack=0x100 --defsym __morestack_non_split=0x200
     93  all: $(BUILT_SOURCES)
     94 -- 
     95 1.7.1
     96 
     97