Fix long standing bug that prevented newer drivers from working with
older libGL. The data in extension_helper.h erroneous instructed
drivers to expect all functions with establised offsets, even those
not in the ABI, to have a specific offset allocated. This is just
wrong. A function is either in the ABI and has a set offset or a
function is not in the ABI and has a re-map offset.
diff --git a/src/mesa/glapi/extension_helper.py b/src/mesa/glapi/extension_helper.py
index a2a16a8..f7fa90c 100644
--- a/src/mesa/glapi/extension_helper.py
+++ b/src/mesa/glapi/extension_helper.py
@@ -211,12 +211,17 @@
print 'static const struct dri_extension_function %s_functions[] = {' % (category)
for f in category_list[ category ]:
+ # A function either has an offset that is
+ # assigned by the ABI, or it has a remap
+ # index.
if any_entrypoints_in_abi(f, abi, api):
index_name = "-1"
+ offset = f.offset
else:
index_name = "%s_remap_index" % (f.name)
+ offset = -1
- print ' { %s_names, %s, %d },' % (f.name, index_name, f.offset)
+ print ' { %s_names, %s, %d },' % (f.name, index_name, offset)
print ' { NULL, 0, 0 }'