File tree 13 files changed +35
-10
lines changed
linker_script_symbol-only 13 files changed +35
-10
lines changed Original file line number Diff line number Diff line change @@ -15,3 +15,11 @@ add_custom_command(OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/archives/libour_archive.a
15
15
add_custom_target (libour_archive.a ALL
16
16
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR} /archives/libour_archive.a"
17
17
)
18
+
19
+ if (NOT "${CMAKE_SYSTEM_NAME} " STREQUAL "Windows" )
20
+ set_property (
21
+ TEST "goto-gcc-CORE"
22
+ PROPERTY ENVIRONMENT
23
+ "PATH=$ENV{PATH} :$<TARGET_FILE_DIR:goto-cc>"
24
+ )
25
+ endif ()
Original file line number Diff line number Diff line change @@ -10,10 +10,10 @@ tests.log: ../test.pl
10
10
11
11
else
12
12
test : ../../src/goto-cc/goto-gcc
13
- @../test.pl -e -p -c ../../../src/goto-cc/goto-gcc
13
+ @PATH=../../../scripts: $$ PATH ../test.pl -e -p -c ../../../src/goto-cc/goto-gcc
14
14
15
15
tests.log : ../test.pl ../../src/goto-cc/goto-gcc
16
- @../test.pl -e -p -c ../../../src/goto-cc/goto-gcc
16
+ @PATH=../../../scripts: $$ PATH ../test.pl -e -p -c ../../../src/goto-cc/goto-gcc
17
17
18
18
../../src/goto-cc/goto-gcc : ../../src/goto-cc/goto-cc
19
19
@ln -sf goto-cc ../../src/goto-cc/goto-gcc
Original file line number Diff line number Diff line change @@ -2,11 +2,13 @@ extern char src_start[];
2
2
extern char src_end [];
3
3
extern char dst_start [];
4
4
5
- void * memcpy (void * dest , void * src , unsigned n ){
5
+ void * memcpy (void * dest , void * src , unsigned n )
6
+ {
6
7
return (void * )0 ;
7
8
}
8
9
9
- int main (){
10
+ int main ()
11
+ {
10
12
memcpy (dst_start , src_start , (unsigned )src_end - (unsigned )src_start );
11
13
return 0 ;
12
14
}
File renamed without changes.
Original file line number Diff line number Diff line change 1
1
CORE
2
2
main.c
3
- -o out.gb -T script.ld -nostdlib
3
+ -o out.gb -T script.ld -nostdlib -Wl,--no-dynamic-linker -Wall
4
4
^EXIT=0$
5
5
^SIGNAL=0$
6
6
--
7
+ Problem parsing linker script
7
8
^warning: ignoring
8
9
^CONVERSION ERROR$
9
10
--
Original file line number Diff line number Diff line change @@ -2,11 +2,13 @@ extern char src_start[];
2
2
extern char src_size [];
3
3
extern char dst_start [];
4
4
5
- void * memcpy (void * dest , void * src , unsigned n ){
5
+ void * memcpy (void * dest , void * src , unsigned n )
6
+ {
6
7
return (void * )0 ;
7
8
}
8
9
9
- int main (){
10
+ int main ()
11
+ {
10
12
memcpy (dst_start , src_start , (unsigned )src_size );
11
13
return 0 ;
12
14
}
File renamed without changes.
Original file line number Diff line number Diff line change 1
1
CORE
2
2
main.c
3
- -o out.gb -T script.ld -nostdlib
3
+ -o out.gb -T script.ld -nostdlib -Wl,--no-dynamic-linker -Wall
4
4
^EXIT=0$
5
5
^SIGNAL=0$
6
6
--
7
+ Problem parsing linker script
7
8
^warning: ignoring
8
9
^CONVERSION ERROR$
9
10
--
Original file line number Diff line number Diff line change 1
1
extern char sym [];
2
2
3
- int main (){
3
+ int main ()
4
+ {
4
5
int foo = (int )sym ;
5
6
return 0 ;
6
7
}
File renamed without changes.
Original file line number Diff line number Diff line change 1
1
CORE
2
2
main.c
3
- -o out.gb -T script.ld -nostdlib
3
+ -o out.gb -T script.ld -nostdlib -Wl,--no-dynamic-linker -Wall
4
4
^EXIT=0$
5
5
^SIGNAL=0$
6
6
--
7
+ Problem parsing linker script
7
8
^warning: ignoring
8
9
^CONVERSION ERROR$
9
10
--
Original file line number Diff line number Diff line change @@ -41,11 +41,18 @@ else()
41
41
COMMAND "${CMAKE_COMMAND} " -E create_symlink
42
42
goto-cc $<TARGET_FILE_DIR:goto-cc>/goto-ld
43
43
BYPRODUCTS ${CMAKE_BINARY_DIR} /bin/goto-ld)
44
+ add_custom_command (TARGET goto-cc
45
+ POST_BUILD
46
+ COMMAND "${CMAKE_COMMAND} " -E copy
47
+ ${CMAKE_CURRENT_SOURCE_DIR} /../../scripts/ls_parse.py
48
+ $<TARGET_FILE_DIR:goto-cc>/ls_parse.py
49
+ BYPRODUCTS ${CMAKE_BINARY_DIR} /bin/ls_parse.py)
44
50
45
51
install (
46
52
FILES
47
53
${CMAKE_BINARY_DIR} /bin/goto-ld
48
54
${CMAKE_BINARY_DIR} /bin/goto-gcc
55
+ ${CMAKE_BINARY_DIR} /bin/ls_parse.py
49
56
DESTINATION
50
57
${CMAKE_INSTALL_BINDIR} )
51
58
endif ()
Original file line number Diff line number Diff line change @@ -958,6 +958,7 @@ int gcc_modet::gcc_hybrid_binary(compilet &compiler)
958
958
959
959
int result=run_gcc (compiler);
960
960
961
+ #if defined(__linux__) || defined(__FreeBSD_kernel__) || defined(__OpenBSD__)
961
962
if (result==0 &&
962
963
cmdline.isset (' T' ) &&
963
964
goto_binaries.size ()==1 &&
@@ -970,6 +971,7 @@ int gcc_modet::gcc_hybrid_binary(compilet &compiler)
970
971
gcc_message_handler);
971
972
result=ls_merge.add_linker_script_definitions ();
972
973
}
974
+ #endif
973
975
974
976
std::string native_tool;
975
977
You can’t perform that action at this time.
0 commit comments