# HG changeset patch # User Shinji KONO # Date 1601387822 -32400 # Node ID 72c38f531ae2da1a6b75df671501cf104fb596e3 # Parent dccc1cb1350c7b5c49f7a17af34d3472e390c09c macOS first try diff -r dccc1cb1350c -r 72c38f531ae2 src/CMakeLists.txt --- a/src/CMakeLists.txt Thu Jul 30 17:02:53 2020 +0900 +++ b/src/CMakeLists.txt Tue Sep 29 22:57:02 2020 +0900 @@ -7,18 +7,6 @@ add_subdirectory(usr) enable_language(C ASM) -if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - set(CMAKE_SYSROOT "${CBC_XV6_SYSROOT}") - set(CMAKE_OSX_SYSROOT "${CBC_XV6_SYSROOT}") - include_directories("${CMAKE_OSX_SYSROOT}") - include_directories("${CMAKE_OSX_SYSROOT}/usr/include") - include_directories("${CMAKE_OSX_SYSROOT}/usr/include/arm-linux-gnueabihf") - set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) - set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) - set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) - set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) -endif() - set(USE_CUDA,0) # -DUSE_CUDA # add_definitions("-Wall -g -O") diff -r dccc1cb1350c -r 72c38f531ae2 src/gearsTools/pmake.pl --- a/src/gearsTools/pmake.pl Thu Jul 30 17:02:53 2020 +0900 +++ b/src/gearsTools/pmake.pl Tue Sep 29 22:57:02 2020 +0900 @@ -29,41 +29,24 @@ my $objcopy; if ($^O =~ /darwin/){ - $objcopy = "/usr/local/opt/llvm/bin/llvm-objcopy"; - my $arm_library = $ENV{ARM_LIBRARY}; - $cc = $ENV{CBC_COMPILER}; - $asm = $ENV{CBC_COMPILER}; - $cflags = qq|-Wall -g --target=armv6-linux-gnueabihf -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -DCBCXV6=1 -g -O0 -nodefaultlibs - -Wno-macro-redefined -Wno-gnu-designator -Wno-sometimes-uninitialized -Wno-tautological-compare - -Wno-nullability-completeness -Wno-expansion-to-defined |; - $cflags .= ' -B' . $ENV{HOME} .'/workspace/cr/arm_library/usr/lib/gcc/arm-linux-gnueabihf/6.3.0'; - $cflags .= ' --gcc-toolchain=arm-linux-gnueabihf-raspbian'; - # $ld = '/usr/local/linaro/arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-ld'; - $ld = "/usr/local/opt/llvm/bin/ld.lld"; - - # $libgcc = '/usr/local/lib/gcc/arm-none-eabi/7.3.1/libgcc.a'; - $libgcc = "$arm_library/usr/lib/gcc/arm-linux-gnueabihf/6.3.0/libgcc.a"; - #chomp($libgcc = `$cc --print-libgcc-file-name`); + my $armdir = "/usr/local/Cellar/arm-none-eabi-gcc/9-2019-q4-major"; + $objcopy = "$armdir/bin/arm-none-eabi-objcopy"; + my $cbcmdir = "/usr/local/Cellar/cbc/llvm10"; + $cc = "$cbcmdir/bin/clang --target=armv6-linux-gnueabihf -I$xv6_src_dir/cbclang/arm"; + $asm = $cc; + $cflags = qq|-B$armdir/bin/arm-none-eabi- + -DCBCXV6=1 -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -g -O0|; + $ld = "$armdir/bin/arm-none-eabi-ld"; + chomp($libgcc = `$cc --print-libgcc-file-name`); + # $cmake .= 3; $ldflags = " -L. -T kernel-cmake.ld"; - $kernel_cflags = '--target=armv6-linux-gnueabihf -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -Werror -g -O0 -iquote ../ -c'; - # -DX_CMAKE_C_LINK_EXECUTABLE=\"$ld $ldflags -o kernel.elf $libgcc -b binary initcode usr/fs.img\" - $kernel_ld_flags = ' -L. -N -e main -Ttext 0 -o -L ../ ' . $libgcc; - #$kernel_ld_flags = ' -L. -N -e main -Ttext 0 -o ' ; + $kernel_cflags = '-march=armv6 -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -Werror -g -O0 -iquote ../ -c'; + $kernel_ld_flags = " -L. -N -e main -Ttext 0 -o -L ../ $armdir//gcc/lib/gcc/arm-none-eabi/9.2.1/libgcc.a"; $kernel_ld_command = "$ld $kernel_ld_flags"; - $initcode_cflags = '--target=armv6-linux-gnueabihf -nostdinc -c'; + $initcode_cflags = '-march=armv6 -nostdinc -c'; $initcode_ld_command = "$ld -L. -N -e start -Ttext 0 -o "; - - push(@cmake_arg, - "-DCBC_XV6_SYSROOT=\"$arm_library\"", - # "-DCMAKE_OSX_SYSROOT=\"$arm_library\"", - #"-DCMAKE_RANLIB=\"/Users/anatofuz/workspace/compiler/llvm/llvm-project/build/bin/llvm-ar\"", - "-DCMAKE_AR=\"/usr/local/opt/llvm/bin/llvm-ar\"", - "-DCMAKE_RANLIB=\"/usr/local/opt/llvm/bin/llvm-ranlib\"", - # "-DCMAKE_AR=\"/usr/local/linaro/arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-ar\"", - # "-DCMAKE_RANLIB=\"/usr/local/linaro/arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-ranlib\"", - # "-DCMAKE_OSX_XV6_INCLUDE_DIR=\"$arm_library/usr/include\"", - ); + $cflags =~ s/\n//g; } else { $objcopy = "arm-none-eabi-objcopy"; @@ -88,7 +71,7 @@ push(@cmake_arg, "-DCBC_COM=$cc", "-DPMAKE_ARGS=\"$cflags\"", - "-DCBC_ASM_COMPILER=$cc", + # "-DCBC_ASM_COMPILER=$asm", "-DX_CMAKE_LINKER=$ld", "-DX_CMAKE_C_LINK_EXECUTABLE=\"$ld $ldflags -o kernel.elf $libgcc -b binary initcode fs.img\"", "-DKERNEL_LINK_EXECUTABLE=\"$kernel_ld_command\"", diff -r dccc1cb1350c -r 72c38f531ae2 src/usr/CMakeLists.txt --- a/src/usr/CMakeLists.txt Thu Jul 30 17:02:53 2020 +0900 +++ b/src/usr/CMakeLists.txt Tue Sep 29 22:57:02 2020 +0900 @@ -2,19 +2,6 @@ set(CMAKE_C_COMPILER "/usr/bin/cc") project(usr C ASM) -if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - set(CMAKE_SYSROOT "${CBC_XV6_SYSROOT}") - set(CMAKE_OSX_SYSROOT "${CBC_XV6_SYSROOT}") - include_directories("${CMAKE_OSX_SYSROOT}") - include_directories(SYSTEM "${CMAKE_OSX_SYSROOT}/usr/include") - include_directories(SYSTEM "${CMAKE_OSX_SYSROOT}/usr/include/arm-linux-gnueabihf") - set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) - set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) - set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) - set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) -endif() - - set(CMAKE_C_FLAGS_DEBUG "-O0") add_definitions(${PMAKE_ARGS}) set(CMAKE_C_COMPILER "${CBC_COM}")