Only in bb2/: example
diff -bwurp bb2/tools/gcc.jam boost/tools/gcc.jam
--- bb2/tools/gcc.jam	2009-04-20 11:18:04.625000000 -0400
+++ boost/tools/gcc.jam	2009-04-19 22:26:40.565894400 -0400
@@ -542,6 +542,38 @@ generators.register
 generators.override gcc.mingw.link : gcc.link ;
 generators.override gcc.mingw.link.dll : gcc.link.dll ;
 
+# The set of permissible input types is different on cygwin.
+# So, define two sets of generators, with cygwin generators
+# selected when target-os=windows.
+
+g = [ new gcc-linking-generator gcc.cygwin.link
+      : OBJ SEARCHED_LIB STATIC_LIB IMPORT_LIB
+      : EXE
+      : <toolset>gcc <target-os>cygwin ] ;
+$(g).set-rule-name gcc.link ;
+generators.register $(g) ;
+
+g = [ new gcc-linking-generator gcc.cygwin.link.dll
+      : OBJ SEARCHED_LIB STATIC_LIB IMPORT_LIB
+      : IMPORT_LIB SHARED_LIB
+      : <toolset>gcc <target-os>cygwin ] ;
+$(g).set-rule-name gcc.link.dll ;
+generators.register $(g) ;
+
+generators.register
+  [ new gcc-linking-generator gcc.link
+      : LIB OBJ
+      : EXE
+      : <toolset>gcc ] ;
+generators.register
+  [ new gcc-linking-generator gcc.link.dll
+      : LIB OBJ
+      : SHARED_LIB
+      : <toolset>gcc ] ;
+
+generators.override gcc.cygwin.link : gcc.link ;
+generators.override gcc.cygwin.link.dll : gcc.link.dll ;
+
 # Declare flags for linking.
 # First, the common flags.
 toolset.flags gcc.link OPTIONS <debug-symbols>on : -g ;
@@ -553,6 +585,7 @@ toolset.flags gcc.link FINDLIBS-SA <find
 toolset.flags gcc.link LIBRARIES <library-file> ;
 
 toolset.flags gcc.link.dll .IMPLIB-COMMAND <target-os>windows : "-Wl,--out-implib," ;
+toolset.flags gcc.link.dll .IMPLIB-COMMAND <target-os>cygwin : "-Wl,--out-implib," ;
 
 # For <runtime-link>static we made sure there are no dynamic libraries in the
 # link. On HP-UX not all system libraries exist as archived libraries (for
Only in boost/tools: gcc.jam~
diff -bwurp bb2/tools/types/exe.jam boost/tools/types/exe.jam
--- bb2/tools/types/exe.jam	2009-04-20 11:18:05.312500000 -0400
+++ boost/tools/types/exe.jam	2009-04-19 22:29:12.550269400 -0400
@@ -6,4 +6,4 @@ import type ;
 
 type.register EXE ;
 type.set-generated-target-suffix EXE : <target-os>windows : "exe" ;
-type.set-generated-target-suffix EXE : <target-os>cygiwn : "exe" ;
+type.set-generated-target-suffix EXE : <target-os>cygwin : "exe" ;
Only in boost/tools/types: exe.jam~
diff -bwurp bb2/tools/types/lib.jam boost/tools/types/lib.jam
--- bb2/tools/types/lib.jam	2009-04-20 11:18:05.312500000 -0400
+++ boost/tools/types/lib.jam	2009-04-19 22:13:50.909644400 -0400
@@ -9,7 +9,7 @@ type.register LIB ;
 
 type.set-generated-target-prefix LIB : : "lib" ;
 type.set-generated-target-prefix LIB : <target-os>windows : "" ;
-type.set-generated-target-prefix LIB : <target-os>cygwin : "" ;
+type.set-generated-target-prefix LIB : <target-os>cygwin : "cyg" ;
 
 # FIXME: should not register both extensions on both
 # platforms.
@@ -25,6 +25,7 @@ type.set-generated-target-prefix IMPORT_
 
 type.register SHARED_LIB : so dll dylib : LIB ;
 type.set-generated-target-suffix SHARED_LIB : <target-os>windows : dll ;
+type.set-generated-target-suffix SHARED_LIB : <target-os>cygwin : dll ;
 type.set-generated-target-suffix SHARED_LIB : <target-os>darwin : dylib ;
 
 type SEARCHED_LIB : : LIB ;
Only in boost/tools/types: lib.jam~
