source: trunk/libs/newlib/src/newlib/testsuite/lib/newlib.exp @ 543

Last change on this file since 543 was 444, checked in by satin@…, 6 years ago

add newlib,libalmos-mkh, restructure shared_syscalls.h and mini-libc

File size: 2.7 KB
Line 
1# Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved.
2#
3# Permission to use, copy, modify, and distribute this software
4# is freely granted, provided that this notice is preserved.
5#
6
7# flags.exp overrides the dejagnu versions of libgloss_link_flags,
8# newlib_link_flags, and newlib_include_flags.
9load_lib flags.exp
10
11proc newlib_version { } {
12    global tool_version
13
14    verbose "In newlib version...\n"
15
16    return $tool_version
17}
18
19set newlib_initialized 0
20
21proc newlib_init { args } {
22    global gluefile wrap_flags
23    global newlib_initialized
24    global target_info
25    # These values are initialized in the local site.exp file.
26    global srcdir objdir tmpdir
27    global host_triplet target_triplet
28    global old_ld_library_path
29
30    verbose "In newlib_init...\n"
31
32    if { $newlib_initialized == 1 } { return; }
33
34    if {[target_info needs_status_wrapper] != "" && \
35            [target_info needs_status_wrapper] != "0" && \
36            ![info exists gluefile]} {
37        set gluefile ${tmpdir}/testglue.o;
38        set result [build_wrapper $gluefile];
39        if { $result != "" } {
40            set gluefile [lindex $result 0];
41            set wrap_flags [lindex $result 1];
42        } else {
43            unset gluefile
44        }
45    }
46
47    if [string match $host_triplet $target_triplet] then {
48        if [string match "i686-pc-linux-gnu" $host_triplet] then {
49            set old_ld_library_path [getenv LD_LIBRARY_PATH]
50            setenv LD_LIBRARY_PATH "$objdir/.libs"
51        }
52    }
53}
54
55proc newlib_target_compile { source dest type options } {
56    global gluefile wrap_flags
57    global srcdir objdir
58    global host_triplet target_triplet
59
60    verbose "In newlib_target_compile...\n"
61
62    lappend options "libs=-I$srcdir/include"
63    verbose "srcdir is $srcdir"
64       
65    if {[target_info needs_status_wrapper] != "" && \
66            [target_info needs_status_wrapper] != "0" && \
67            [info exists gluefile] } {
68        lappend options "libs=$gluefile"
69        lappend options "ldflags=$wrap_flags"
70    }
71
72    if [string match $host_triplet $target_triplet] then {
73        if [string match "i686-pc-linux-gnu" $host_triplet] then {
74            lappend options "libs=$objdir/crt0.o -lc -lgcc"
75            lappend options "ldflags=-nostdlib -L$objdir/.libs [newlib_include_flags]"
76        }
77    }
78
79    return [target_compile $source $dest $type $options]
80}
81
82proc newlib_finish { } {
83    global old_ld_library_path
84    global host_triplet target_triplet
85
86    verbose "In newlib_finish...\n"
87
88    if [string match $host_triplet $target_triplet] then {
89        if [string match "i686-pc-linux-gnu" $host_triplet] then {
90            setenv LD_LIBRARY_PATH "$old_ld_library_path"
91        }
92    }
93}
94
95proc newlib_exit { } {
96    global gluefile;
97   
98    verbose "In newlib_exit...\n"
99
100    if [info exists gluefile] {
101        file_on_build delete $gluefile;
102        unset gluefile;
103    }
104}
Note: See TracBrowser for help on using the repository browser.