return end;
 }
 
-static void link_alt_odb_entries(const char *alt, int sep,
-                                const char *relative_base, int depth)
+#define link_alt_odb_entries(r, a, s, rb, d) \
+       link_alt_odb_entries_##r(a, s, rb, d)
+static void link_alt_odb_entries_the_repository(const char *alt,
+                                               int sep,
+                                               const char *relative_base,
+                                               int depth)
 {
        struct strbuf objdirbuf = STRBUF_INIT;
        struct strbuf entry = STRBUF_INIT;
                return;
        }
 
-       link_alt_odb_entries(buf.buf, '\n', relative_base, depth);
+       link_alt_odb_entries(the_repository, buf.buf, '\n', relative_base, depth);
        strbuf_release(&buf);
        free(path);
 }
                if (commit_lock_file(&lock))
                        die_errno("unable to move new alternates file into place");
                if (the_repository->objects->alt_odb_tail)
-                       link_alt_odb_entries(reference, '\n', NULL, 0);
+                       link_alt_odb_entries(the_repository, reference,
+                                            '\n', NULL, 0);
        }
        free(alts);
 }
         */
        prepare_alt_odb();
 
-       link_alt_odb_entries(reference, '\n', NULL, 0);
+       link_alt_odb_entries(the_repository, reference,
+                            '\n', NULL, 0);
 }
 
 /*
 
        the_repository->objects->alt_odb_tail =
                        &the_repository->objects->alt_odb_list;
-       link_alt_odb_entries(the_repository->objects->alternate_db,
+       link_alt_odb_entries(the_repository,
+                            the_repository->objects->alternate_db,
                             PATH_SEP, NULL, 0);
 
        read_info_alternates(the_repository, get_object_directory(), 0);