changeset 391:72c38f531ae2

macOS first try
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 29 Sep 2020 22:57:02 +0900
parents dccc1cb1350c
children b7235d42396f
files src/CMakeLists.txt src/gearsTools/pmake.pl src/usr/CMakeLists.txt
diffstat 3 files changed, 15 insertions(+), 57 deletions(-) [+]
line wrap: on
line diff
--- 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")
--- 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 <OBJECTS> $libgcc   -b binary initcode usr/fs.img\"
-    $kernel_ld_flags =  ' -L. -N -e main -Ttext 0 <OBJECTS> -o <TARGET> <LINK_LIBRARIES>  -L ../ ' . $libgcc;
-    #$kernel_ld_flags =  ' -L. -N -e main -Ttext 0 <OBJECTS> -o <TARGET> <LINK_LIBRARIES>' ;
+    $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 <OBJECTS> -o <TARGET> <LINK_LIBRARIES>  -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 <OBJECTS> -o <TARGET> <LINK_LIBRARIES>";
 
-
-    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 <OBJECTS> $libgcc   -b binary initcode fs.img\"",
   "-DKERNEL_LINK_EXECUTABLE=\"$kernel_ld_command\"",
--- 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}")