diff --git a/contrib/btree_gin/.gitignore b/contrib/btree_gin/.gitignore
index c3ce67c140..7cebcf00f8 100644
--- a/contrib/btree_gin/.gitignore
+++ b/contrib/btree_gin/.gitignore
@@ -1 +1,3 @@
 /btree_gin.sql
+# Generated subdirectories
+/results/
diff --git a/contrib/btree_gist/.gitignore b/contrib/btree_gist/.gitignore
index 95b6332299..46318eaa7b 100644
--- a/contrib/btree_gist/.gitignore
+++ b/contrib/btree_gist/.gitignore
@@ -1 +1,3 @@
 /btree_gist.sql
+# Generated subdirectories
+/results/
diff --git a/contrib/citext/.gitignore b/contrib/citext/.gitignore
index 3f449cfc46..e626817156 100644
--- a/contrib/citext/.gitignore
+++ b/contrib/citext/.gitignore
@@ -1 +1,3 @@
 /citext.sql
+# Generated subdirectories
+/results/
diff --git a/contrib/cube/.gitignore b/contrib/cube/.gitignore
index bb28b9327c..9f60da5078 100644
--- a/contrib/cube/.gitignore
+++ b/contrib/cube/.gitignore
@@ -1,3 +1,5 @@
 /cubeparse.c
 /cubescan.c
 /cube.sql
+# Generated subdirectories
+/results/
diff --git a/contrib/dblink/.gitignore b/contrib/dblink/.gitignore
index 985b73d394..fb7e8728bc 100644
--- a/contrib/dblink/.gitignore
+++ b/contrib/dblink/.gitignore
@@ -1 +1,3 @@
 /dblink.sql
+# Generated subdirectories
+/results/
diff --git a/contrib/dict_int/.gitignore b/contrib/dict_int/.gitignore
index 90a29e83fa..932dda6d84 100644
--- a/contrib/dict_int/.gitignore
+++ b/contrib/dict_int/.gitignore
@@ -1 +1,3 @@
 /dict_int.sql
+# Generated subdirectories
+/results/
diff --git a/contrib/dict_xsyn/.gitignore b/contrib/dict_xsyn/.gitignore
index 4f1dc1e8b3..0ebd61caaf 100644
--- a/contrib/dict_xsyn/.gitignore
+++ b/contrib/dict_xsyn/.gitignore
@@ -1 +1,3 @@
 /dict_xsyn.sql
+# Generated subdirectories
+/results/
diff --git a/contrib/earthdistance/.gitignore b/contrib/earthdistance/.gitignore
index 86caae7daa..366a0a399e 100644
--- a/contrib/earthdistance/.gitignore
+++ b/contrib/earthdistance/.gitignore
@@ -1 +1,3 @@
 /earthdistance.sql
+# Generated subdirectories
+/results/
diff --git a/contrib/hstore/.gitignore b/contrib/hstore/.gitignore
index 737d3655c6..d7af95330c 100644
--- a/contrib/hstore/.gitignore
+++ b/contrib/hstore/.gitignore
@@ -1 +1,3 @@
 /hstore.sql
+# Generated subdirectories
+/results/
diff --git a/contrib/intarray/.gitignore b/contrib/intarray/.gitignore
index e9985910a3..761a9b2607 100644
--- a/contrib/intarray/.gitignore
+++ b/contrib/intarray/.gitignore
@@ -1 +1,3 @@
 /_int.sql
+# Generated subdirectories
+/results/
diff --git a/contrib/ltree/.gitignore b/contrib/ltree/.gitignore
index 85d1e298b4..49883e82a3 100644
--- a/contrib/ltree/.gitignore
+++ b/contrib/ltree/.gitignore
@@ -1 +1,3 @@
 /ltree.sql
+# Generated subdirectories
+/results/
diff --git a/contrib/pg_trgm/.gitignore b/contrib/pg_trgm/.gitignore
index 3272f08f53..9cda826ca4 100644
--- a/contrib/pg_trgm/.gitignore
+++ b/contrib/pg_trgm/.gitignore
@@ -1 +1,3 @@
 /pg_trgm.sql
+# Generated subdirectories
+/results/
diff --git a/contrib/pgcrypto/.gitignore b/contrib/pgcrypto/.gitignore
index 3cdb7a6396..07b24d98f0 100644
--- a/contrib/pgcrypto/.gitignore
+++ b/contrib/pgcrypto/.gitignore
@@ -1 +1,3 @@
 /pgcrypto.sql
+# Generated subdirectories
+/results/
diff --git a/contrib/seg/.gitignore b/contrib/seg/.gitignore
index d2a71ec0dd..a8973ff696 100644
--- a/contrib/seg/.gitignore
+++ b/contrib/seg/.gitignore
@@ -1,3 +1,5 @@
 /segparse.c
 /segscan.c
 /seg.sql
+# Generated subdirectories
+/results/
diff --git a/contrib/tablefunc/.gitignore b/contrib/tablefunc/.gitignore
index 3477af4d4b..b28639637b 100644
--- a/contrib/tablefunc/.gitignore
+++ b/contrib/tablefunc/.gitignore
@@ -1 +1,3 @@
 /tablefunc.sql
+# Generated subdirectories
+/results/
diff --git a/contrib/test_parser/.gitignore b/contrib/test_parser/.gitignore
index 54cb045adb..c07f518855 100644
--- a/contrib/test_parser/.gitignore
+++ b/contrib/test_parser/.gitignore
@@ -1 +1,3 @@
 /test_parser.sql
+# Generated subdirectories
+/results/
diff --git a/contrib/tsearch2/.gitignore b/contrib/tsearch2/.gitignore
index b5da0e9f7d..1d34309d00 100644
--- a/contrib/tsearch2/.gitignore
+++ b/contrib/tsearch2/.gitignore
@@ -1 +1,3 @@
 /tsearch2.sql
+# Generated subdirectories
+/results/
diff --git a/contrib/unaccent/.gitignore b/contrib/unaccent/.gitignore
index 30a8749048..6d74a7617f 100644
--- a/contrib/unaccent/.gitignore
+++ b/contrib/unaccent/.gitignore
@@ -1 +1,3 @@
 /unaccent.sql
+# Generated subdirectories
+/results/
diff --git a/contrib/xml2/.gitignore b/contrib/xml2/.gitignore
new file mode 100644
index 0000000000..19b6c5ba42
--- /dev/null
+++ b/contrib/xml2/.gitignore
@@ -0,0 +1,2 @@
+# Generated subdirectories
+/results/
diff --git a/src/pl/plperl/.gitignore b/src/pl/plperl/.gitignore
index 4ee7d6095b..c04f42ba07 100644
--- a/src/pl/plperl/.gitignore
+++ b/src/pl/plperl/.gitignore
@@ -2,3 +2,6 @@
 /Util.c
 /perlchunks.h
 /plperl_opmask.h
+
+# Generated subdirectories
+/results/
diff --git a/src/pl/plpython/.gitignore b/src/pl/plpython/.gitignore
new file mode 100644
index 0000000000..19b6c5ba42
--- /dev/null
+++ b/src/pl/plpython/.gitignore
@@ -0,0 +1,2 @@
+# Generated subdirectories
+/results/
diff --git a/src/pl/tcl/.gitignore b/src/pl/tcl/.gitignore
new file mode 100644
index 0000000000..19b6c5ba42
--- /dev/null
+++ b/src/pl/tcl/.gitignore
@@ -0,0 +1,2 @@
+# Generated subdirectories
+/results/
diff --git a/src/pl/tcl/modules/.gitignore b/src/pl/tcl/modules/.gitignore
new file mode 100644
index 0000000000..89581887c4
--- /dev/null
+++ b/src/pl/tcl/modules/.gitignore
@@ -0,0 +1,3 @@
+/pltcl_delmod
+/pltcl_listmod
+/pltcl_loadmod