https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118803

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |INVALID

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Also if you the gcc driver and use -save-temps, the driver will pass via
COLLECT_GCC_OPTIONS and collect2 picks that up there.

    /* Now pick up any flags we want early from COLLECT_GCC_OPTIONS
       The LTO options are passed here as are other options that might
       be unsuitable for ld (e.g. -save-temps).  */
    p = getenv ("COLLECT_GCC_OPTIONS");
    while (p && *p)
      {
        const char *q = extract_string (&p);
        if (*q == '-' && (q[1] == 'm' || q[1] == 'f'))
          num_c_args++;
        if (startswith (q, "-flto-partition=none"))
          no_partition = true;
        else if (startswith (q, "-fno-lto"))
          lto_mode = LTO_MODE_NONE;
        else if (startswith (q, "-save-temps"))
          /* FIXME: Honour =obj.  */
          save_temps = true;
...
  /* Make temp file names.  */
  if (save_temps)
    {
      c_file = concat (output_file, ".cdtor.c", NULL);
      o_file = concat (output_file, ".cdtor.o", NULL);
#ifdef COLLECT_EXPORT_LIST
      export_file = concat (output_file, ".x", NULL);
#endif
    }
  else
    {
      c_file = make_temp_file (".cdtor.c");
      o_file = make_temp_file (".cdtor.o");
#ifdef COLLECT_EXPORT_LIST
      export_file = make_temp_file (".x");
#endif
    }



Anyways on elf targets either .init_array or .init sections are used.

.init_array is executed by ld.so directly.

Reply via email to