Revert "Fix: Ensure only actual object files are included in link inputs"

This reverts commit c45cf3a6dbcc97b74fd27f837af6fd89160fac77.

Reason for revert:

This may break windows build.
https://ci.chromium.org/ui/p/chromium/builders/try/win-rel/1459583/overview

Original change's description:
> Fix: Ensure only actual object files are included in link inputs
>
> c_additional_outputs feature introduced additional outputs (e.g., .dwo
> files) that inadvertently became part of the link inputs. This was
> unintended, as typically only true object files should serve as link
> inputs.
>
> Bug: 502431091
> Change-Id: Ie51f40f4cc222b15b7ef93a4b67634a977e71d6b
> Reviewed-on: https://gn-review.googlesource.com/c/gn/+/22080
> Reviewed-by: Andrew Grieve <agrieve@google.com>
> Commit-Queue: Takuto Ikuta <tikuta@google.com>

Bug: 502431091
Change-Id: Ic9434a83cb7617e764fb350b2e42d506fba49084
Reviewed-on: https://gn-review.googlesource.com/c/gn/+/22120
Commit-Queue: Takuto Ikuta <tikuta@google.com>
Reviewed-by: Junji Watanabe <jwata@google.com>
diff --git a/src/gn/ninja_binary_target_writer.cc b/src/gn/ninja_binary_target_writer.cc
index 7aae0f8..163141b 100644
--- a/src/gn/ninja_binary_target_writer.cc
+++ b/src/gn/ninja_binary_target_writer.cc
@@ -319,16 +319,8 @@
     // Do not add .pcm files as they are not object files linked to final
     // binaries.
     if (source.GetType() != SourceFile::SOURCE_MODULEMAP &&
-        source_set->GetOutputFilesForSource(source, &tool_name,
-                                            &tool_outputs)) {
-      const OutputFile& output = tool_outputs[0];
-      SourceFile output_as_source =
-          output.AsSourceFile(source_set->settings()->build_settings());
-      // Only collect actual object files for linking.
-      if (output_as_source.IsObjectType()) {
-        obj_files->push_back(output);
-      }
-    }
+        source_set->GetOutputFilesForSource(source, &tool_name, &tool_outputs))
+      obj_files->push_back(tool_outputs[0]);
   }
 
   // Swift files may generate one object file per module or one per source file
diff --git a/src/gn/ninja_c_binary_target_writer.cc b/src/gn/ninja_c_binary_target_writer.cc
index 4b4fb1a..14f95ed 100644
--- a/src/gn/ninja_c_binary_target_writer.cc
+++ b/src/gn/ninja_c_binary_target_writer.cc
@@ -477,21 +477,13 @@
     // It's theoretically possible for a compiler to produce more than one
     // output, but we'll only link to the first output.
     if (!source.IsModuleMapType()) {
-      const OutputFile& output = tool_outputs[0];
-      SourceFile output_as_source =
-          output.AsSourceFile(target_->settings()->build_settings());
-      // Only include actual object files for linking.
-      if (output_as_source.IsObjectType()) {
-        object_files->push_back(output);
-      } else {
-        extra_files->push_back(output);
-      }
+      object_files->push_back(tool_outputs[0]);
     } else {
       extra_files->push_back(tool_outputs[0]);
     }
 
-    // Ensure all additional outputs produced by this source are tracked for
-    // dependencies (e.g., included in the target's stamp file).
+    // Add additional outputs to extra_files so they are included in the
+    // target's stamp file.
     for (size_t i = 1; i < tool_outputs.size(); ++i) {
       extra_files->push_back(tool_outputs[i]);
     }
diff --git a/src/gn/ninja_c_binary_target_writer_unittest.cc b/src/gn/ninja_c_binary_target_writer_unittest.cc
index 1f7f12b..beb7409 100644
--- a/src/gn/ninja_c_binary_target_writer_unittest.cc
+++ b/src/gn/ninja_c_binary_target_writer_unittest.cc
@@ -191,7 +191,7 @@
   ASSERT_TRUE(config.OnResolved(&err));
 
   Target target(setup.settings(), Label(SourceDir("//foo/"), "bar"));
-  target.set_output_type(Target::EXECUTABLE);
+  target.set_output_type(Target::SOURCE_SET);
   target.visibility().SetPublic();
   target.sources().push_back(SourceFile("//foo/input1.cc"));
   target.source_types_used().Set(SourceFile::SOURCE_CPP);
@@ -218,13 +218,7 @@
       "  source_file_part = input1.cc\n"
       "  source_name_part = input1\n"
       "\n"
-      "build ./bar: link obj/foo/bar.input1.o\n"
-      "  ldflags =\n"
-      "  libs =\n"
-      "  frameworks =\n"
-      "  swiftmodules =\n"
-      "  output_extension =\n"
-      "  output_dir =\n";
+      "build phony/foo/bar: phony obj/foo/bar.input1.o obj/foo/input1.dwo\n";
 
   EXPECT_EQ(expected, out.str());
 }