// If --package-metadata was used, set up the package metadata note.
// https://systemd.io/ELF_PACKAGE_METADATA/
+static const char*
+get_package_metadata()
+{
+ if (parameters->options().user_set_package_metadata())
+ {
+ const char* desc = parameters->options().package_metadata();
+ if (strcmp(desc, "") != 0)
+ return desc;
+ }
+
+ if (getenv("ELF_PACKAGE_METADATA"))
+ {
+ const char* desc = getenv("ELF_PACKAGE_METADATA");
+ if (strcmp(desc, "") != 0)
+ return desc;
+ }
+
+ return NULL;
+}
+
void
Layout::create_package_metadata()
{
- if (!parameters->options().user_set_package_metadata())
- return;
-
- const char* desc = parameters->options().package_metadata();
- if (strcmp(desc, "") == 0)
- return;
+ const char* desc = get_package_metadata();
+ if (desc == NULL)
+ return;
#ifdef HAVE_JANSSON
json_error_t json_error;
einfo (_("%F%P: common page size (0x%v) > maximum page size (0x%v)\n"),
link_info.commonpagesize, link_info.maxpagesize);
}
+
+ if (!ldelf_emit_note_fdo_package_metadata)
+ {
+ char *package_metadata = getenv("ELF_PACKAGE_METADATA");
+
+ if (package_metadata)
+ {
+ ldelf_emit_note_fdo_package_metadata =
+ xmalloc (strlen (package_metadata) + 1);
+ strcpy (ldelf_emit_note_fdo_package_metadata, package_metadata);
+ }
+ }
}
/* Handle the generation of DT_NEEDED tags. */