Replace {additional_flags=-fPIE ldflags=-pie} with {pie}.
This makes sure that the test-cases properly error out when using target board
unix/-fno-PIE/-no-pie.
Tested on x86_64-linux.
 set genfile [standard_output_file ${testfile}-gen.h]
 set executable $testfile
 
-if {[build_executable_own_libs ${testfile}.exp $executable $srcfile [list additional_flags=-fPIE ldflags=-pie]] == ""} {
+if {[build_executable_own_libs ${testfile}.exp $executable $srcfile \
+        {pie}] == ""} {
     return -1
 }
 
     fail $test
 }
 
-set prelink_args [build_executable_own_libs ${test}.exp $executable $srcfile [list "additional_flags=-fPIE -DGEN=\"$genfile\"" "ldflags=-pie"]]
+set prelink_args [build_executable_own_libs ${test}.exp $executable $srcfile \
+                     [list pie "additional_flags=-DGEN=\"$genfile\""]]
 if {$prelink_args == ""} {
     return -1
 }
 
 set test "first offset is non-zero"
 if {$first_offset == 0} {
-    fail "$test (-fPIE -pie in effect?)"
+    fail "$test (failing because PIE is not effect?)"
 } else {
     pass $test
 }
 
 standard_testfile .c
 set executable ${testfile}
 
-if { [prepare_for_testing "failed to prepare" $executable "" [list debug "additional_flags=-fPIE" "ldflags=-pie"]] } {
+if { [prepare_for_testing "failed to prepare" $executable "" [list debug pie]] } {
     return -1
 }
 
 
 set executable ${testfile}
 
 if { [build_executable ${testfile}.exp $executable $srcfile \
-                         [list debug pthreads "additional_flags=-fPIE" "ldflags=-pie"]] } {
+                         [list debug pthreads pie]] } {
     return -1
 }
 
 
     }
 }
 
-if { [compile_jit_main ${main_srcfile} "${main_binfile}-pie" \
-         {additional_flags=-fPIE ldflags=-pie}] == 0 } {
+if { [compile_jit_main ${main_srcfile} "${main_binfile}-pie" pie] == 0 } {
     with_test_prefix PIE {
        one_jit_test [lindex $jit_solibs_target 0] "${hex}  jit_function_0001" 0
     }
 
 # Use conditional compilation according to `BIN' as GDB remembers the source
 # file name of the breakpoint.
 
-set opts [list debug additional_flags=-fPIE ldflags=-pie]
+set opts [list debug pie]
 if {[build_executable ${testfile}.exp $executable1 $srcfile [concat $opts {additional_flags=-DBIN=1}]] == -1
     || [build_executable ${testfile}.exp $executable2 $srcfile [concat $opts {additional_flags=-DBIN=2}]] == -1} {
     return -1
 
 
 standard_testfile
 
-set opts [list debug additional_flags=-fPIE ldflags=-pie]
+set opts [list debug pie]
 
 if [prepare_for_testing "failed to prepare" $testfile $srcfile $opts] {
     return
 
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Build programs in PIE mode, to reproduce PR 21555.
-foreach_with_prefix opts {
-    { "" "" }
-    { "-fPIE" "ldflags=-pie" } } {
+foreach_with_prefix opts { "" "pie" } {
 
        # build the first test case
 
        # Cygwin needs $EXEEXT.
        set binfile1 [standard_output_file ${testfile1}$EXEEXT]
 
-       set testfile1_opt [list debug nowarnings \
-                              additional_flags=[lindex $opts 0] \
-                              [lindex $opts 1] ]
+       set testfile1_opt [list debug nowarnings $opts]
        if  { [gdb_compile "${srcdir}/${subdir}/${srcfile1}" "${binfile1}" \
                   executable ${testfile1_opt}] != "" } {
            untested "failed to compile first testcase"
        set srcfile2 ${testfile2}.c
        set binfile2 [standard_output_file ${testfile2}$EXEEXT]
 
-       set testfile2_opt1 [list debug nowarnings \
-                               additional_flags=[lindex $opts 0] \
-                               [lindex $opts 1]]
-       set testfile2_op2 [list debug nowarnings \
-                              "additional_flags=-DNO_SECTIONS [lindex $opts 0]" \
-                              [lindex $opts 1]]
+       set testfile2_opt1 [list debug nowarnings $opts]
+       set testfile2_op2 [list debug nowarnings $opts \
+                              "additional_flags=-DNO_SECTIONS"]
        if  { [gdb_compile "${srcdir}/${subdir}/${srcfile2}" "${binfile2}" \
                   executable ${testfile2_opt1}] != ""
              && [gdb_compile "${srcdir}/${subdir}/${srcfile2}" "${binfile2}" \
 
 standard_testfile
 
 if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable \
-                         [list "additional_flags=-fPIE -pie"]] != "" } {
+        {pie}] != "" } {
     return -1
 }