- be_gas_dump_globals(get_glob_type(), &env, 1, only_emit_marked_entities);
-
- /* dump the Thread Local Storage */
- if (be_gas_flavour != GAS_FLAVOUR_MACH_O) {
- be_gas_emit_switch_section(GAS_SECTION_TLS);
- force_section = 1;
- be_gas_dump_globals(get_tls_type(), &env, 0, only_emit_marked_entities);
- force_section = 0;
+ env.section = (be_gas_section_t) -1;
+ be_gas_dump_globals(get_glob_type(), &env, only_emit_marked_entities);
+ env.section = GAS_SECTION_TLS;
+ be_gas_dump_globals(get_tls_type(), &env, only_emit_marked_entities);
+ env.section = GAS_SECTION_CONSTRUCTORS;
+ be_gas_dump_globals(get_segment_type(IR_SEGMENT_CONSTRUCTORS), &env,
+ only_emit_marked_entities);
+ env.section = GAS_SECTION_DESTRUCTORS;
+ be_gas_dump_globals(get_segment_type(IR_SEGMENT_DESTRUCTORS), &env,
+ only_emit_marked_entities);
+
+ env.section = GAS_SECTION_PIC_SYMBOLS;
+ be_gas_dump_globals(main_env->pic_symbols_type, &env,
+ only_emit_marked_entities);
+
+ if (get_compound_n_members(main_env->pic_trampolines_type) > 0) {
+ env.section = GAS_SECTION_PIC_TRAMPOLINES;
+ be_gas_dump_globals(main_env->pic_trampolines_type, &env,
+ only_emit_marked_entities);
+ if (be_gas_flavour == GAS_FLAVOUR_MACH_O) {
+ be_emit_cstring("\t.subsections_via_symbols\n");
+ be_emit_write_line();
+ }