summaryrefslogtreecommitdiff
path: root/dev-util/boost-build/54f811b7593dc751ec1b306cad27f32cfce81f36.patch
blob: 51218f2d9918854aa2b42ed9281f429dff3b4b59 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
From 54f811b7593dc751ec1b306cad27f32cfce81f36 Mon Sep 17 00:00:00 2001
From: Rene Rivera <grafikrobot@gmail.com>
Date: Fri, 28 Aug 2020 10:36:41 -0500
Subject: [PATCH] Remove limit on one link at a time limit.

The reason for limiting links to one at a time is long obsolete. Hence
we can remove almost all uses of JAM_SEMAPHORE to impose that
one-link-at-a-time limit.
---
 tools/clang-darwin.jam  |   3 -
 tools/clang-linux.jam   |  20 +++---
 tools/clang-vxworks.jam |  25 ++++----
 tools/cray.jam          |   5 --
 tools/embarcadero.jam   | 124 ++++++++++++++++++------------------
 tools/gcc.jam           |  10 ---
 tools/intel-darwin.jam  |  43 ++++++-------
 tools/intel-linux.jam   |  68 ++++++++++----------
 tools/intel-vxworks.jam |   5 +-
 tools/qcc.jam           |   5 --
 10 files changed, 135 insertions(+), 173 deletions(-)

diff --git a/tools/clang-darwin.jam b/tools/clang-darwin.jam
index 11f62d298b..0618d9f054 100644
--- a/tools/clang-darwin.jam
+++ b/tools/clang-darwin.jam
@@ -173,9 +173,6 @@ actions piecemeal archive
 rule link ( targets * : sources * : properties * )
 {
   SPACE on $(targets) = " " ;
-  # Serialize execution of the 'link' action, since
-  # running N links in parallel is just slower.
-  JAM_SEMAPHORE on $(targets) = <s>clang-darwin-link-semaphore ;
 }
 
 actions link bind LIBRARIES
diff --git a/tools/clang-linux.jam b/tools/clang-linux.jam
index d5c9ed744e..28ddcde7ba 100644
--- a/tools/clang-linux.jam
+++ b/tools/clang-linux.jam
@@ -207,16 +207,15 @@ SPACE = " " ;
 
 rule link ( targets * : sources * : properties * ) {
   SPACE on $(targets) = " " ;
-  JAM_SEMAPHORE on $(targets) = <s>clang-linux-link-semaphore ;
-  
+
   local tosw ;
   local pselect = [ property.select <target-os> : $(properties) ] ;
-  
+
   if $(pselect)
     {
-    
+
     local tosv = [ feature.get-values <target-os> : $(pselect) ] ;
-    
+
     if $(tosv) = windows
         {
         tosw = 1 ;
@@ -238,16 +237,15 @@ rule link ( targets * : sources * : properties * ) {
 
 rule link.dll ( targets * : sources * : properties * ) {
   SPACE on $(targets) = " " ;
-  JAM_SEMAPHORE on $(targets) = <s>clang-linux-link-semaphore ;
-  
+
   local tosw ;
   local pselect = [ property.select <target-os> : $(properties) ] ;
-  
+
   if $(pselect)
     {
-    
+
     local tosv = [ feature.get-values <target-os> : $(pselect) ] ;
-    
+
     if $(tosv) = windows
         {
         tosw = 1 ;
@@ -285,5 +283,5 @@ actions link-w bind LIBRARIES {
 # Target OS is Windows, does not need the RPATH and SONAME stuff
 actions link.dll-w bind LIBRARIES {
     "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -o "$(<)" -shared @"@($(<[1]:T).rsp:E=$(START-GROUP) "$(>:T)" "$(LIBRARIES:T)" $(FINDLIBS-ST-PFX:T) -l$(FINDLIBS-ST:T) $(FINDLIBS-SA-PFX:T) -l$(FINDLIBS-SA:T) $(END-GROUP))" $(OPTIONS) $(USER_OPTIONS)
-    
+
 }
diff --git a/tools/clang-vxworks.jam b/tools/clang-vxworks.jam
index d5dfc33a0d..33fe3ef2bf 100644
--- a/tools/clang-vxworks.jam
+++ b/tools/clang-vxworks.jam
@@ -16,9 +16,9 @@ import generators ;
 
 feature.extend-subfeature toolset clang : platform : vxworks ;
 
-toolset.inherit-generators clang-vxworks 
-  <toolset>clang <toolset-clang:platform>vxworks 
-  : gcc 
+toolset.inherit-generators clang-vxworks
+  <toolset>clang <toolset-clang:platform>vxworks
+  : gcc
   # Don't inherit PCH generators. They were not tested, and probably
   # don't work for this compiler.
   : gcc.mingw.link gcc.mingw.link.dll gcc.compile.c.pch gcc.compile.c++.pch
@@ -30,12 +30,12 @@ generators.override clang-vxworks.searched-lib-generator : searched-lib-generato
 
 
 toolset.inherit-rules clang-vxworks : gcc ;
-toolset.inherit-flags clang-vxworks : gcc 
+toolset.inherit-flags clang-vxworks : gcc
         : <inlining>full
           <architecture>x86/<address-model>32
           <architecture>x86/<address-model>64
         ;
-        
+
 if [ MATCH (--debug-configuration) : [ modules.peek : ARGV ] ]
 {
     .debug-configuration = true ;
@@ -45,22 +45,22 @@ if [ MATCH (--debug-configuration) : [ modules.peek : ARGV ] ]
 #   compile and link options allow you to specify addition command line options for each version
 rule init ( version ? :  command * : options * )
 {
-    command = [ common.get-invocation-command clang-vxworks : ccllvm 
+    command = [ common.get-invocation-command clang-vxworks : ccllvm
         : $(command) ] ;
-    
+
     linker = [ get-values <linker> : $(options) ] ;
     linker   ?= ld ;
-    
+
     # Determine the version
     local command-string = $(command:J=" ") ;
     if $(command)
-    {    
+    {
         version ?= [ MATCH "^([0-9.]+)"
             : [ SHELL "$(command-string) -dumpversion" ] ] ;
     }
 
     local condition = [ common.check-init-parameters clang-vxworks
-        : version $(version) ] ;    
+        : version $(version) ] ;
 
     common.handle-options clang-vxworks : $(condition) : $(command) : $(options) ;
 
@@ -112,14 +112,11 @@ actions piecemeal archive
 rule link ( targets * : sources * : properties * )
 {
   SPACE on $(targets) = " " ;
-  # Serialize execution of the 'link' action, since
-  # running N links in parallel is just slower.
-  JAM_SEMAPHORE on $(targets) = <s>clang-vxworks-link-semaphore ;
 }
 
 actions link bind LIBRARIES
 {
-    "$(.LD)" $(USER_OPTIONS) -L"$(LINKPATH)" -o "$(<)" "$(>)" "$(LIBRARIES)" $(START-GROUP) $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) 
+    "$(.LD)" $(USER_OPTIONS) -L"$(LINKPATH)" -o "$(<)" "$(>)" "$(LIBRARIES)" $(START-GROUP) $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS)
     }
 
 actions link.dll bind LIBRARIES
diff --git a/tools/cray.jam b/tools/cray.jam
index d586af3af4..e4f4ec0d4b 100644
--- a/tools/cray.jam
+++ b/tools/cray.jam
@@ -644,10 +644,6 @@ rule gcc-link-procedure ( targets * : sources * : properties * )
     # Copied from 'gcc.jam'.
 
     SPACE on $(targets) = " " ;
-    # Serialize execution of the 'link' action, since running N links in
-    # parallel is just slower. For now, serialize only gcc links, it might be a
-    # good idea to serialize all links.
-    JAM_SEMAPHORE on $(targets) = <s>gcc-link-semaphore ;
     gcc.quote-rpath $(targets) ;
 }
 
@@ -657,7 +653,6 @@ rule gcc-link-dll-procedure ( targets * : sources * : properties * )
     # Copied from 'gcc.jam'.
 
     SPACE on $(targets) = " " ;
-    JAM_SEMAPHORE on $(targets) = <s>gcc-link-semaphore ;
     gcc.quote-rpath $(targets) ;
 }
 
diff --git a/tools/embarcadero.jam b/tools/embarcadero.jam
index c54a1ef5eb..9bf094f21b 100644
--- a/tools/embarcadero.jam
+++ b/tools/embarcadero.jam
@@ -25,7 +25,7 @@ several versions of the compiler.
 
 `version`:
 
-The version should be the compiler version if specified. if the 
+The version should be the compiler version if specified. if the
 version is not specified Boost Build will find the latest installed
 version of Embarcadero C++ and use that for the version. If the version
 is specified Boost Build does not check if this matches any particular
@@ -146,8 +146,8 @@ generators.override embarcadero.prebuilt : builtin.prebuilt ;
 generators.override embarcadero.searched-lib-generator : searched-lib-generator ;
 
 toolset.inherit-rules embarcadero : clang-linux ;
-toolset.inherit-flags embarcadero 
-    : clang-linux 
+toolset.inherit-flags embarcadero
+    : clang-linux
     : <runtime-link>shared
       <link>shared
       <threading>multi
@@ -192,9 +192,9 @@ rule init ( version ? :  command * : options * )
   local compiler = bcc64 ;
   local preprocessor = cpp64 ;
   local amodel = 64 ;
-  
+
   local optam = [ feature.get-values <address-model> : $(options) ] ;
-  
+
   if $(optam)
     {
     if $(optam) = 32
@@ -208,29 +208,29 @@ rule init ( version ? :  command * : options * )
         $(optam) = "" ;
         }
     }
-  
+
   command = [ common.get-invocation-command embarcadero : $(compiler) : $(command) ] ;
-  
+
   switch $(command[1]:BL)
     {
     case bcc32x :
         compiler = bcc32x ;
         preprocessor = cpp32x ;
         amodel = 32 ;
-    case bcc64 : 
+    case bcc64 :
         compiler = bcc64 ;
         preprocessor = cpp64 ;
         amodel = 64 ;
-    case "bcc32x.exe" : 
+    case "bcc32x.exe" :
         compiler = bcc32x ;
         preprocessor = cpp32x ;
         amodel = 32 ;
-    case "bcc64.exe" : 
+    case "bcc64.exe" :
         compiler = bcc64 ;
         preprocessor = cpp64 ;
         amodel = 64 ;
     }
-  
+
   if $(optam) && $(optam) != $(amodel)
     {
     errors.user-error "embarcadero initialization: compiler and address model" :
@@ -250,43 +250,43 @@ rule init ( version ? :  command * : options * )
             cl_version = 5.0 ;
             }
       }
-    
+
       local condition = [ common.check-init-parameters embarcadero : version $(version) ] ;
       handle-options $(condition) : $(command) : $(options) ;
-    
+
       # Support for the Embarcadero root directory. If the Embarcadero binary
       # directory is not in the PATH we need to tell the underlying clang
       # implementation where to find the Embarcadero header/library files
       # and set the correct runtime path so that we can execute Embarcadero
       # programs and find Embarcadero DLLs.
-    
+
       local root = [ feature.get-values <root> : $(options) ] ;
-      
+
       # 1) Look in registry
-    
+
       if ! $(root)
         {
-        
+
         local sdkdir = [ get_sdk_dir ] ;
-        
+
         if $(sdkdir)
             {
-            
+
             local bdsv = [ get_bds_version $(sdkdir) ] ;
-            
+
             if $(bdsv)
                 {
-                
+
                 local has_dec = [ MATCH "(.+[.])" : $(bdsv) ] ;
                 local bdsv_full ;
-                
+
                 if ! $(has_dec)
                     {
                     bdsv_full = $(bdsv).0 ;
                     }
-                
+
                 local troot = [ W32_GETREG "HKEY_LOCAL_MACHINE\\SOFTWARE\\Embarcadero\\BDS\\$(bdsv)" : RootDir ] ;
-                
+
                 if $(troot)
                     {
                     troot = $(troot:T) ;
@@ -320,44 +320,44 @@ rule init ( version ? :  command * : options * )
                                 troot = [ concatenate $(troot) : name ] ;
                                 root = $(troot:D) ;
                                 }
-                            }   
+                            }
                         }
                     }
                 }
             }
         }
-        
-        
+
+
       # 2) Look for path in the command
-        
+
       if ! $(root)
         {
-        
+
         local cpath = $(command[1]:D) ;
-        
+
         if $(cpath)
             {
             root = $(cpath:P) ;
             }
         }
-        
+
       # 3) Search for the directory of the command
-        
-      if ! $(root) 
+
+      if ! $(root)
         {
-        
+
         local pdirs = [ path.programs-path ] ;
-        
+
         for local dir in $(pdirs)
             {
-            
+
             local match = [ MATCH "/(.:.+)" : $(dir) ] ;
-            
+
             if $(match)
                 {
                 dir = "$(match)" ;
                 }
-            
+
             if [ CHECK_IF_FILE $(dir)/$(command) ]
                 {
                 root = $(dir:P) ;
@@ -370,24 +370,24 @@ rule init ( version ? :  command * : options * )
                 }
             }
         }
-        
-      if ! $(root) 
+
+      if ! $(root)
         {
         errors.user-error "Embarcadero toolset initialization: the root directory for the Embarcadero installation can not be found" ;
         }
       else
         {
-        
+
         local lib_path = $(root)/bin $(root)/bin64 $(root)/Bpl C:/Users/Public/Documents/Embarcadero ;
         if $(.debug-configuration)
         {
             ECHO "notice:" using Embarcadero libraries with clang compilation"::" $(condition) "::" $(lib_path) ;
         }
         flags embarcadero.link RUN_PATH $(condition) : $(lib_path) ;
-        
+
         local system_include_option = "-isystem " ;
         local system_include_directories = $(root)/include/windows/crtl $(root)/include/windows/sdk $(root)/include/windows/rtl $(root)/include/dinkumware64 ;
-        
+
         local lib_dir_release ;
         local lib_dir_debug ;
         local archiver ;
@@ -396,7 +396,7 @@ rule init ( version ? :  command * : options * )
         local assembler ;
         local asmflags ;
         local asmoutput ;
-        
+
         if $(compiler) = bcc32x
             {
             lib_dir_release = $(root)/lib/win32c/release $(root)/lib/win32c/release/psdk ;
@@ -405,7 +405,7 @@ rule init ( version ? :  command * : options * )
             arflags = /P512 ;
             implib = implib ;
             assembler = $(root)/bin/tasm32 ;
-            
+
             # /ml makes all symbol names case-sensitive
 
             asmflags = /ml ;
@@ -413,14 +413,14 @@ rule init ( version ? :  command * : options * )
             }
         else if $(compiler) = bcc64
             {
-            
+
             lib_dir_release = $(root)/lib/win64/release $(root)/lib/win64/release/psdk ;
             lib_dir_debug = $(root)/lib/win64/debug ;
             archiver = tlib64 ;
             arflags = /P2048 ;
             implib = mkexp ;
             }
-        
+
         flags embarcadero.compile .EMB_SYSINC $(condition) : $(system_include_option)$(system_include_directories) ;
         flags embarcadero.link LINKPATH $(condition)/<variant>release : $(lib_dir_release) ;
         flags embarcadero.link LINKPATH $(condition)/<variant>debug : $(lib_dir_debug) $(lib_dir_release) ;
@@ -432,9 +432,9 @@ rule init ( version ? :  command * : options * )
         flags embarcadero.asm USER_OPTIONS $(condition) : [ feature.get-values <asmflags> : $(options) ] ;
         flags embarcadero.archive AROPTIONS $(condition) : [ feature.get-values <archiveflags> : $(options) ] ;
         flags embarcadero.link.dll .IMPLIB_COMMAND $(condition) : $(root)/bin/$(implib) ;
-        
+
         local mte = [ feature.get-values <user-interface> : $(options) ] ;
-        
+
         if $(mte)
             {
             flags embarcadero OPTIONS <main-target-type>EXE/$(condition) : <user-interface>$(mte) ;
@@ -453,7 +453,7 @@ local rule concatenate ( path : name )
     local result ;
     local has_ending_slash = [ MATCH ".*([/\\])$" : $(path) ] ;
     local has_backward_slash = [ MATCH ".*([\\])" : $(path) ] ;
-    
+
     if $(has_ending_slash)
         {
         result = $(path)$(name) ;
@@ -471,28 +471,28 @@ local rule concatenate ( path : name )
 
 local rule get_sdk_dir ( )
     {
-    
+
     local ret ;
     local appdata = [ os.environ APPDATA ] ;
-    
+
     if $(appdata)
         {
         ret = $(appdata:T)/Embarcadero/BDS ;
         }
     return $(ret) ;
     }
-    
+
 local rule get_bds_version ( sdir )
     {
-    
+
     local ret ;
     local flist = [ GLOB $(sdir) : * ] ;
-    
+
     if $(flist)
         {
-        
+
         local dirs ;
-        
+
         for local file in $(flist)
             {
             if ! [ CHECK_IF_FILE $(file) ]
@@ -502,9 +502,9 @@ local rule get_bds_version ( sdir )
             }
         if $(dirs)
             {
-            
+
             local ldir = $(dirs[-1]) ;
-            
+
             ret =  $(ldir:B) ;
             }
         }
@@ -559,7 +559,7 @@ local opt_drtl = -tR ;
 local opt_dapp = -tW ;
 local opt_compile_flags = -DNDEBUG ;
 local opt_lflags = "-lS:1048576 -lSc:4098 -lH:1048576 -lHc:8192" ;
-    
+
 flags embarcadero OPTIONS <user-interface>console : $(opt_console) ;
 flags embarcadero OPTIONS <user-interface>gui : $(opt_dapp) ;
 flags embarcadero OPTIONS <runtime-link>shared : $(opt_drtl) ;
@@ -602,16 +602,14 @@ rule archive ( targets * : sources * : properties * )
 }
 
 actions updated together piecemeal archive
-{ 
+{
     "$(.AR)" $(AROPTIONS) $(.ARFLAGS) /u /a /C "$(<)" +-"$(>)"
 }
 
 rule link ( targets * : sources * : properties * ) {
-  JAM_SEMAPHORE on $(targets) = <s>embarcadero-link-semaphore ;
 }
 
 rule link.dll ( targets * : sources * : properties * ) {
-  JAM_SEMAPHORE on $(targets) = <s>embarcadero-link-semaphore ;
 }
 
 actions link bind LIBRARIES {
diff --git a/tools/gcc.jam b/tools/gcc.jam
index ff3209f7b8..1fb10e01ab 100644
--- a/tools/gcc.jam
+++ b/tools/gcc.jam
@@ -1096,33 +1096,23 @@ rule quote-rpath ( targets * )
 rule link ( targets * : sources * : properties * )
 {
     SPACE on $(targets) = " " ;
-    # Serialize execution of the 'link' action, since running N links in
-    # parallel is just slower. For now, serialize only gcc links, it might be a
-    # good idea to serialize all links.
-    JAM_SEMAPHORE on $(targets) = <s>gcc-link-semaphore ;
     quote-rpath $(targets) ;
 }
 
 rule link.dll ( targets * : sources * : properties * )
 {
     SPACE on $(targets) = " " ;
-    JAM_SEMAPHORE on $(targets) = <s>gcc-link-semaphore ;
     quote-rpath $(targets) ;
 }
 
 rule link.mingw ( targets * : sources * : properties * )
 {
     SPACE on $(targets) = " " ;
-    # Serialize execution of the 'link' action, since running N links in
-    # parallel is just slower. For now, serialize only gcc links, it might be a
-    # good idea to serialize all links.
-    JAM_SEMAPHORE on $(targets) = <s>gcc-link-semaphore ;
 }
 
 rule link.dll.mingw ( targets * : sources * : properties * )
 {
     SPACE on $(targets) = " " ;
-    JAM_SEMAPHORE on $(targets) = <s>gcc-link-semaphore ;
 }
 
 actions link.mingw bind LIBRARIES
diff --git a/tools/intel-darwin.jam b/tools/intel-darwin.jam
index 6dc5d8e3bf..7da7b079c6 100644
--- a/tools/intel-darwin.jam
+++ b/tools/intel-darwin.jam
@@ -16,9 +16,9 @@ import generators ;
 
 feature.extend-subfeature toolset intel : platform : darwin ;
 
-toolset.inherit-generators intel-darwin 
-  <toolset>intel <toolset-intel:platform>darwin 
-  : gcc 
+toolset.inherit-generators intel-darwin
+  <toolset>intel <toolset-intel:platform>darwin
+  : gcc
   # Don't inherit PCH generators. They were not tested, and probably
   # don't work for this compiler.
   : gcc.mingw.link gcc.mingw.link.dll gcc.compile.c.pch gcc.compile.c++.pch
@@ -29,20 +29,20 @@ generators.override intel-darwin.prebuilt : builtin.prebuilt ;
 generators.override intel-darwin.searched-lib-generator : searched-lib-generator ;
 
 toolset.inherit-rules intel-darwin : gcc ;
-toolset.inherit-flags intel-darwin : gcc 
-        : <inlining>off <inlining>on <inlining>full <optimization>space 
+toolset.inherit-flags intel-darwin : gcc
+        : <inlining>off <inlining>on <inlining>full <optimization>space
           <warnings>off <warnings>all <warnings>on
           <warnings>extra <warnings>pedantic
           <warnings-as-errors>off <warnings-as-errors>on
           <architecture>x86/<address-model>32
           <architecture>x86/<address-model>64
         ;
-        
+
 if [ MATCH (--debug-configuration) : [ modules.peek : ARGV ] ]
 {
     .debug-configuration = true ;
 }
-                       
+
 # Initializes the intel-darwin toolset
 #   version in mandatory
 #   name (default icc) is used to invoke the specified intel compiler
@@ -51,8 +51,8 @@ rule init ( version ? :  command * : options * )
 {
     local condition = [ common.check-init-parameters intel-darwin
         : version $(version) ] ;
-    
-    command = [ common.get-invocation-command intel-darwin : icc 
+
+    command = [ common.get-invocation-command intel-darwin : icc
         : $(command) : /opt/intel_cc_80/bin ] ;
 
     common.handle-options intel-darwin : $(condition) : $(command) : $(options) ;
@@ -67,12 +67,12 @@ rule init ( version ? :  command * : options * )
     {
         bin ?= [ common.get-absolute-tool-path $(command[-1]) ] ;
         root ?= $(bin:D) ;
-    
+
         if $(root)
         {
             # Libraries required to run the executable may be in either
-            # $(root)/lib (10.1 and earlier) 
-            #     or 
+            # $(root)/lib (10.1 and earlier)
+            #     or
             # $(root)/lib/architecture-name (11.0 and later:
             local lib_path = $(root)/lib $(root:P)/lib/$(bin:B) ;
             if $(.debug-configuration)
@@ -80,7 +80,7 @@ rule init ( version ? :  command * : options * )
                 ECHO notice\: using intel libraries "::" $(condition) "::" $(lib_path) ;
             }
             flags intel-darwin.link RUN_PATH $(condition) : $(lib_path) ;
-        }   
+        }
     }
 
     local m = [ MATCH (..).* : $(version) ] ;
@@ -90,7 +90,7 @@ rule init ( version ? :  command * : options * )
     }
 
     local major = $(m) ;
-    
+
     if $(major) = "9" {
       flags intel-darwin.compile OPTIONS $(condition)/<inlining>off : -Ob0 ;
       flags intel-darwin.compile OPTIONS $(condition)/<inlining>on : -Ob1  ;
@@ -136,7 +136,7 @@ flags intel-darwin.compile.c++ OPTIONS <cxxflags> ;
 
 flags intel-darwin.compile OPTIONS <optimization>space : -O1 ; # no specific space optimization flag in icc
 
-# 
+#
 .cpu-type-em64t    = prescott nocona core2 corei7 corei7-avx core-avx-i
                      conroe conroe-xe conroe-l allendale merom
                      merom-xe kentsfield kentsfield-xe penryn wolfdale
@@ -190,11 +190,11 @@ rule archive ( targets * : sources * : properties * )
   # Always remove archive and start again. Here's rationale from
   # Andre Hentz:
   #
-  # I had a file, say a1.c, that was included into liba.a. 
-  # I moved a1.c to a2.c, updated my Jamfiles and rebuilt. 
-  # My program was crashing with absurd errors. 
-  # After some debugging I traced it back to the fact that a1.o was *still* 
-  # in liba.a 
+  # I had a file, say a1.c, that was included into liba.a.
+  # I moved a1.c to a2.c, updated my Jamfiles and rebuilt.
+  # My program was crashing with absurd errors.
+  # After some debugging I traced it back to the fact that a1.o was *still*
+  # in liba.a
   #
   # Rene Rivera:
   #
@@ -226,9 +226,6 @@ flags intel-darwin.link USER_OPTIONS <linkflags> ;
 rule link ( targets * : sources * : properties * )
 {
   SPACE on $(targets) = " " ;
-  # Serialize execution of the 'link' action, since
-  # running N links in parallel is just slower.
-  JAM_SEMAPHORE on $(targets) = <s>intel-darwin-link-semaphore ;
 }
 
 actions link bind LIBRARIES
diff --git a/tools/intel-linux.jam b/tools/intel-linux.jam
index 920cefed0f..d97ee231c0 100644
--- a/tools/intel-linux.jam
+++ b/tools/intel-linux.jam
@@ -19,7 +19,7 @@ import numbers ;
 
 feature.extend-subfeature toolset intel : platform : linux ;
 
-toolset.inherit-generators intel-linux 
+toolset.inherit-generators intel-linux
      <toolset>intel <toolset-intel:platform>linux : gcc : gcc.mingw.link gcc.mingw.link.dll ;
 generators.override intel-linux.prebuilt : builtin.lib-generator ;
 generators.override intel-linux.prebuilt : builtin.prebuilt ;
@@ -28,23 +28,23 @@ generators.override intel-linux.searched-lib-generator : searched-lib-generator
 # Override default do-nothing generators.
 generators.override intel-linux.compile.c.pch   : pch.default-c-pch-generator   ;
 generators.override intel-linux.compile.c++.pch : pch.default-cpp-pch-generator ;
- 
+
 type.set-generated-target-suffix PCH : <toolset>intel <toolset-intel:platform>linux : pchi ;
 
 toolset.inherit-rules intel-linux : gcc ;
-toolset.inherit-flags intel-linux : gcc 
+toolset.inherit-flags intel-linux : gcc
         : <inlining>off <inlining>on <inlining>full
           <optimization>space <optimization>speed
           <warnings>off <warnings>all <warnings>on
           <warnings>extra <warnings>pedantic
           <warnings-as-errors>off <warnings-as-errors>on
         ;
-        
+
 if [ MATCH (--debug-configuration) : [ modules.peek : ARGV ] ]
 {
     .debug-configuration = true ;
 }
-                       
+
 # Initializes the intel-linux toolset
 #   version in mandatory
 #   name (default icpc) is used to invoke the specified intel-linux compiler
@@ -53,7 +53,7 @@ rule init ( version ? :  command * : options * )
 {
     local condition = [ common.check-init-parameters intel-linux
         : version $(version) ] ;
-    
+
     if $(.debug-configuration)
     {
         ECHO "notice: intel-linux version is" $(version) ;
@@ -66,83 +66,83 @@ rule init ( version ? :  command * : options * )
     # to a sane 'intel' folder in /opt.
     if [ MATCH "(12[.]0|12)" : $(version) ]
         { default_path = /opt/intel/bin ; }
-    # Intel C++ Compiler 11.1. 
+    # Intel C++ Compiler 11.1.
     else if [ MATCH "(11[.]1)" : $(version) ]
         { default_path = /opt/intel_cce_11.1.064.x86_64/bin ; }
-    # Intel C++ Compiler 11.0. 
+    # Intel C++ Compiler 11.0.
     else if [ MATCH "(11[.]0|11)" : $(version) ]
         { default_path = /opt/intel_cce_11.0.074.x86_64/bin ; }
-    # Intel C++ Compiler 10.1. 
+    # Intel C++ Compiler 10.1.
     else if [ MATCH "(10[.]1)" : $(version) ]
         { default_path = /opt/intel_cce_10.1.013_x64/bin ; }
-    # Intel C++ Compiler 9.1. 
+    # Intel C++ Compiler 9.1.
     else if [ MATCH "(9[.]1)" : $(version) ]
         { default_path = /opt/intel_cc_91/bin ; }
-    # Intel C++ Compiler 9.0. 
+    # Intel C++ Compiler 9.0.
     else if [ MATCH "(9[.]0|9)" : $(version) ]
         { default_path = /opt/intel_cc_90/bin ; }
-    # Intel C++ Compiler 8.1. 
+    # Intel C++ Compiler 8.1.
     else if [ MATCH "(8[.]1)" : $(version) ]
         { default_path = /opt/intel_cc_81/bin ; }
     # Intel C++ Compiler 8.0 - this used to be the default, so now it's the
-    # fallback. 
-    else 
+    # fallback.
+    else
         { default_path = /opt/intel_cc_80/bin ; }
-            
+
     if $(.debug-configuration)
     {
         ECHO "notice: default search path for intel-linux is" $(default_path) ;
     }
 
-    command = [ common.get-invocation-command intel-linux : icpc 
+    command = [ common.get-invocation-command intel-linux : icpc
         : $(command) : $(default_path) ] ;
-                
+
     common.handle-options intel-linux : $(condition) : $(command) : $(options) ;
-    
+
     local root = [ feature.get-values <root> : $(options) ] ;
     local bin ;
     if $(command) || $(root)
     {
         bin ?= [ common.get-absolute-tool-path $(command[-1]) ] ;
         root ?= $(bin:D) ;
-        
+
         local command-string = $(command:J=" ") ;
         local version-output = [ SHELL "$(command-string) --version" ] ;
         local real-version = [ MATCH "([0-9.]+)" : $(version-output) ] ;
         local major = [ MATCH "([0-9]+).*" : $(real-version) ] ;
-        
+
         # If we failed to determine major version, use the behaviour for
         # the current compiler.
         if $(major) && [ numbers.less $(major) 10 ]
         {
             flags intel-linux.compile OPTIONS $(condition)/<inlining>off : "-Ob0" ;
             flags intel-linux.compile OPTIONS $(condition)/<inlining>on : "-Ob1" ;
-            flags intel-linux.compile OPTIONS $(condition)/<inlining>full : "-Ob2" ;            
+            flags intel-linux.compile OPTIONS $(condition)/<inlining>full : "-Ob2" ;
             flags intel-linux.compile OPTIONS $(condition)/<optimization>space : "-O1" ;
             flags intel-linux.compile OPTIONS $(condition)/<optimization>speed : "-O3 -ip" ;
         }
         else if $(major) && [ numbers.less $(major) 11 ]
         {
-            flags intel-linux.compile OPTIONS $(condition)/<inlining>off : "-inline-level=0" ; 
-            flags intel-linux.compile OPTIONS $(condition)/<inlining>on : "-inline-level=1" ; 
-            flags intel-linux.compile OPTIONS $(condition)/<inlining>full : "-inline-level=2" ;                
+            flags intel-linux.compile OPTIONS $(condition)/<inlining>off : "-inline-level=0" ;
+            flags intel-linux.compile OPTIONS $(condition)/<inlining>on : "-inline-level=1" ;
+            flags intel-linux.compile OPTIONS $(condition)/<inlining>full : "-inline-level=2" ;
             flags intel-linux.compile OPTIONS $(condition)/<optimization>space : "-O1" ;
             flags intel-linux.compile OPTIONS $(condition)/<optimization>speed : "-O3 -ip" ;
         }
         else # newer version of intel do have -Os (at least 11+, don't know about 10)
-        {                        
-            flags intel-linux.compile OPTIONS $(condition)/<inlining>off : "-inline-level=0" ; 
-            flags intel-linux.compile OPTIONS $(condition)/<inlining>on : "-inline-level=1" ; 
-            flags intel-linux.compile OPTIONS $(condition)/<inlining>full : "-inline-level=2" ;                
+        {
+            flags intel-linux.compile OPTIONS $(condition)/<inlining>off : "-inline-level=0" ;
+            flags intel-linux.compile OPTIONS $(condition)/<inlining>on : "-inline-level=1" ;
+            flags intel-linux.compile OPTIONS $(condition)/<inlining>full : "-inline-level=2" ;
             flags intel-linux.compile OPTIONS $(condition)/<optimization>space : "-Os" ;
             flags intel-linux.compile OPTIONS $(condition)/<optimization>speed : "-O3 -ip" ;
-        }        
-           
+        }
+
         if $(root)
         {
             # Libraries required to run the executable may be in either
-            # $(root)/lib (10.1 and earlier) 
-            #     or 
+            # $(root)/lib (10.1 and earlier)
+            #     or
             # $(root)/lib/architecture-name (11.0 and later:
             local lib_path = $(root)/lib $(root:P)/lib/$(bin:B) ;
             if $(.debug-configuration)
@@ -150,7 +150,7 @@ rule init ( version ? :  command * : options * )
                 ECHO notice\: using intel libraries "::" $(condition) "::" $(lib_path) ;
             }
             flags intel-linux.link RUN_PATH $(condition) : $(lib_path) ;
-        }   
+        }
     }
 }
 
@@ -213,7 +213,6 @@ actions compile.c.pch
 rule link ( targets * : sources * : properties * )
 {
     SPACE on $(targets) = " " ;
-    JAM_SEMAPHORE on $(targets) = <s>intel-linux-link-semaphore ;
 }
 
 actions link bind LIBRARIES
@@ -224,7 +223,6 @@ actions link bind LIBRARIES
 rule link.dll ( targets * : sources * : properties * )
 {
     SPACE on $(targets) = " " ;
-    JAM_SEMAPHORE on $(targets) = <s>intel-linux-link-semaphore ;
 }
 
 # Differ from 'link' above only by -shared.
diff --git a/tools/intel-vxworks.jam b/tools/intel-vxworks.jam
index c217ead32c..e70e4e2610 100644
--- a/tools/intel-vxworks.jam
+++ b/tools/intel-vxworks.jam
@@ -156,7 +156,7 @@ flags intel-vxworks ARFLAGS <archiveflags> ;
 
 rule archive ( targets * : sources * : properties * )
 {
-  # Always remove archive and start again. 
+  # Always remove archive and start again.
   # of the archive.
   #
   local clean.a = $(targets[1])(clean) ;
@@ -179,9 +179,6 @@ flags intel-vxworks.link USER_OPTIONS <linkflags> ;
 rule link ( targets * : sources * : properties * )
 {
   SPACE on $(targets) = " " ;
-  # Serialize execution of the 'link' action, since
-  # running N links in parallel is just slower.
-  JAM_SEMAPHORE on $(targets) = <s>intel-vxworks-link-semaphore ;
 }
 
 actions link bind LIBRARIES
diff --git a/tools/qcc.jam b/tools/qcc.jam
index 740e90705d..aac6059661 100644
--- a/tools/qcc.jam
+++ b/tools/qcc.jam
@@ -240,10 +240,6 @@ toolset.flags qcc.link RPATH_LINK : <xdll-path> : unchecked ;
 rule link ( targets * : sources * : properties * )
 {
     SPACE on $(targets) = " " ;
-    # Serialize execution of the 'link' action, since running N links in
-    # parallel is just slower. For now, serialize only qcc links while it might
-    # be a good idea to serialize all links.
-    JAM_SEMAPHORE on $(targets) = <s>qcc-link-semaphore ;
     check-target-platform $(1) ;
 }
 
@@ -289,7 +285,6 @@ actions piecemeal archive
 rule link.dll ( targets * : sources * : properties * )
 {
     SPACE on $(targets) = " " ;
-    JAM_SEMAPHORE on $(targets) = <s>qcc-link-semaphore ;
     check-target-platform $(1) ;
 }