6181e9c gdb_compile_shlib: Only consider shlib= options when building executables

Authored and Committed by Simon Marchi 6 years ago
    gdb_compile_shlib: Only consider shlib= options when building executables
    
    Trying to use gdb_compile_shlib with the shlib= option to build a shared
    library that depends on another shared library does not work as of
    today.  See:
    
      https://sourceware.org/ml/gdb-patches/2017-10/msg00733.html
    
    The problem is that building the lib is done in two steps, compilation
    (.c -> .o) and linking (.o -> .so) and the shlib= options are passed to
    both steps.  When compiling the object file (.o), it results in gcc
    complaining:
    
      gcc: warning: .../solib-vanish-lib2.so: linker input file unused because linking not done
    
    The first solution I came up with was to filter the options inside
    gdb_compile_shlib to remove the shlib= options from the options we pass
    when compiling the .o file.
    
    I then thought it would be simpler to ignore the shlib= options in
    gdb_compile when not building an executable (the executable category
    includes the shared libraries).  For other compilation types (object
    file, preprocess and generate assembly), it doesn't make sense to add
    shared libraries to the source file list.
    
    Regtested on the buildbot.
    
    gdb/testsuite/ChangeLog:
    
    	* lib/gdb.exp (gdb_compile): Ignore shlib= and shlib_load
    	options when not creating an executable.
    
        
file modified
+5 -0
file modified
+3 -2