estrip: Don't use splitdebug for .o files

As the process_ar comment explained, object files cannot be splitdebug.

Bug: https://bugs.gentoo.org/787623 ("www-client/firefox[clang]: .gnu_debuglink is busted when using LLD")
Fixes: 51579fb34c19 ("prepstrip: add support for elfutils strip")
Signed-off-by: Alex Xu (Hello71) <alex_y_xu@yahoo.ca>
Signed-off-by: Sam James <sam@gentoo.org>
diff --git a/bin/estrip b/bin/estrip
index 2d9d509..640645b 100755
--- a/bin/estrip
+++ b/bin/estrip
@@ -280,9 +280,6 @@
 
 # Usage: save_elf_debug <src> <inode_debug> [splitdebug]
 save_elf_debug() {
-	${FEATURES_splitdebug} || return 0
-	${PORTAGE_RESTRICT_splitdebug} && return 0
-
 	debug-print-function "${FUNCNAME}" "$@"
 
 	# NOTE: Debug files must be installed in
@@ -390,7 +387,7 @@
 
 	if ${strip_this} ; then
 		# See if we can split & strip at the same time
-		if [[ -n ${SPLIT_STRIP_FLAGS} ]] ; then
+		if ${splitdebug} && [[ -n ${SPLIT_STRIP_FLAGS} ]] ; then
 			local shortname="${x##*/}.debug"
 			local splitdebug="${tmpdir}/splitdebug/${shortname}.${BASHPID:-$(__bashpid)}"
 
@@ -401,7 +398,9 @@
 				"${x}"
 			save_elf_debug "${x}" "${inode_link}_debug" "${splitdebug}"
 		else
-			save_elf_debug "${x}" "${inode_link}_debug"
+			if ${splitdebug} ; then
+				save_elf_debug "${x}" "${inode_link}_debug"
+			fi
 			${already_stripped} || ${STRIP} ${strip_flags} "${x}"
 		fi
 	fi
@@ -431,7 +430,7 @@
 		# There is no concept of splitdebug for objects not yet
 		# linked in (only for finally linked ELFs), so we have to
 		# retain the debug info in the archive itself.
-		if ! ${FEATURES_splitdebug} || ${PORTAGE_RESTRICT_splitdebug} ; then
+		if ! ${splitdebug} ; then
 			${STRIP} -g "${x}" && ${RANLIB} "${x}"
 		fi
 	fi
@@ -542,6 +541,12 @@
 		set +o noglob
 	fi
 
+	if ${FEATURES_splitdebug} && ! ${PORTAGE_RESTRICT_splitdebug} ; then
+		splitdebug=true
+	else
+		splitdebug=false
+	fi
+
 	# In Prefix we are usually an unprivileged user, so we can't strip
 	# unwritable objects.  Make them temporarily writable for the
 	# stripping.
@@ -564,6 +569,7 @@
 		${f} == *"SB shared object"* ]] ; then
 		process_elf "${x}" "${inode_link}" ${PORTAGE_STRIP_FLAGS}
 	elif [[ ${f} == *"SB relocatable"* ]] ; then
+		[[ ${x} == *.ko ]] || splitdebug=false
 		process_elf "${x}" "${inode_link}" ${SAFE_STRIP_FLAGS}
 	fi