diff options
Diffstat (limited to 'src/internal/slibtool_objmeta_impl.c')
-rw-r--r-- | src/internal/slibtool_objmeta_impl.c | 40 |
1 files changed, 38 insertions, 2 deletions
diff --git a/src/internal/slibtool_objmeta_impl.c b/src/internal/slibtool_objmeta_impl.c index 9e9cc75..65d67ea 100644 --- a/src/internal/slibtool_objmeta_impl.c +++ b/src/internal/slibtool_objmeta_impl.c @@ -50,8 +50,44 @@ static int slbt_create_compatible_object_wrapper( const struct slbt_driver_ctx * dctx, struct slbt_exec_ctx * ectx) { - /* awaiting submission */ - return slbt_create_default_object_wrapper(dctx,ectx); + int ret; + FILE * fout; + const struct slbt_source_version * verinfo; + + if (!(fout = fopen(ectx->ltobjname,"w"))) + return SLBT_SYSTEM_ERROR(dctx); + + verinfo = slbt_source_version(); + + ret = fprintf(fout, + "# %s - a libtool object file\n" + "# Generated by %s (slibtool %d.%d.%d)\n" + "# [commit reference: %s]\n" + "#\n" + "# Please DO NOT delete this file!\n" + "# It is necessary for linking the library.\n\n" + + "# Name of the PIC object.\n" + "pic_object='%s'\n\n" + + "# Name of the non-PIC object\n" + "non_pic_object='%s'\n", + + ectx->ltobjname, + dctx->program, + verinfo->major,verinfo->minor,verinfo->revision, + verinfo->commit, + + (dctx->cctx->drvflags & SLBT_DRIVER_SHARED) + ? ectx->lobjname + : "none", + (dctx->cctx->drvflags & SLBT_DRIVER_STATIC) + ? ectx->aobjname + : "none"); + + return (ret <= 0) || fclose(fout) + ? SLBT_SYSTEM_ERROR(dctx) + : 0; } int slbt_create_object_wrapper( |