Print this page
    
12013 fix GCC4 as primary compiler
    
      
        | Split | Close | 
      | Expand all | 
      | Collapse all | 
    
    
          --- old/usr/src/tools/smatch/Makefile
          +++ new/usr/src/tools/smatch/Makefile
   1    1  #
   2    2  # This file and its contents are supplied under the terms of the
   3    3  # Common Development and Distribution License ("CDDL"), version 1.0.
   4    4  # You may only use this file in accordance with the terms of version
   5    5  # 1.0 of the CDDL.
   6    6  #
   7    7  # A full copy of the text of the CDDL should have accompanied this
   8    8  # source.  A copy of the CDDL is also available via the Internet at
   9    9  # http://www.illumos.org/license/CDDL.
  10   10  #
  11   11  # Copyright 2019 Joyent, Inc.
  12   12  #
  
    | ↓ open down ↓ | 12 lines elided | ↑ open up ↑ | 
  13   13  
  14   14  #
  15   15  # The src/ sub-directory is un-modified copy of
  16   16  # https://github.com/illumos/smatch/tree/$SPARSE_VERSION
  17   17  #
  18   18  # This Makefile installs just enough for us to be able to run smatch
  19   19  # locally.
  20   20  #
  21   21  
  22   22  PROG = smatch
  23      -SPARSE_VERSION = 0.6.1-rc1-il-1
       23 +SPARSE_VERSION = 0.6.1-rc1-il-2
  24   24  
  25   25  include ../Makefile.tools
  26   26  
  27   27  # We have to build smatch before we can use cw
  28   28  i386_CC = $(GNUC_ROOT)/bin/gcc
  29   29  sparc_CC = $(GNUC_ROOT)/bin/gcc
  30   30  # sparc doesn't recognise -msave-args
  31   31  i386_SMATCHFLAGS = -msave-args
  32   32  sparc_SMATCHFLAGS =
  33   33  
  34   34  CFLAGS = -O -m64 $($(MACH)_SMATCHFLAGS) -D__sun -Wall -Wno-unknown-pragmas -std=gnu99 -nodefaultlibs
  35   35  
  36   36  SMATCHDATADIR = $(ROOTONBLDSHARE)/smatch
  37   37  
  38   38  CFLAGS += -DSMATCHDATADIR='"$(SMATCHDATADIR)"'
  39   39  CFLAGS += -DGCC_BASE='"/no/such/dir"'
  40   40  CFLAGS += -DMULTIARCH_TRIPLET=NULL
  41   41  
  42   42  LDLIBS += -lsqlite3 -lcrypto -lm -lgcc -lc
  43   43  LDFLAGS = $(MAPFILE.NES:%=-Wl,-M%)
  44   44  LDFLAGS += -L$(NATIVE_ADJUNCT)/lib -R$(NATIVE_ADJUNCT)/lib
  45   45  
  46   46  CPPFLAGS += -nostdinc
  47   47  CPPFLAGS += -Isrc/
  48   48  CPPFLAGS += -I$(NATIVE_ADJUNCT)/include
  49   49  
  50   50  # no install.bin
  51   51  INS.file = $(RM) $@; $(CP) $< $(@D); $(CHMOD) $(FILEMODE) $@
  52   52  INS.dir = mkdir -p $@; $(CHMOD) $(DIRMODE) $@
  53   53  
  54   54  # fine for us
  55   55  OS=linux
  56   56  
  57   57  LIB_OBJS =
  58   58  LIB_OBJS += allocate.o
  59   59  LIB_OBJS += builtin.o
  60   60  LIB_OBJS += char.o
  61   61  LIB_OBJS += compat-$(OS).o
  62   62  LIB_OBJS += cse.o
  63   63  LIB_OBJS += dissect.o
  64   64  LIB_OBJS += dominate.o
  65   65  LIB_OBJS += evaluate.o
  66   66  LIB_OBJS += expand.o
  67   67  LIB_OBJS += expression.o
  68   68  LIB_OBJS += flow.o
  69   69  LIB_OBJS += flowgraph.o
  70   70  LIB_OBJS += inline.o
  71   71  LIB_OBJS += ir.o
  72   72  LIB_OBJS += lib.o
  73   73  LIB_OBJS += linearize.o
  74   74  LIB_OBJS += liveness.o
  75   75  LIB_OBJS += memops.o
  76   76  LIB_OBJS += opcode.o
  77   77  LIB_OBJS += optimize.o
  78   78  LIB_OBJS += parse.o
  79   79  LIB_OBJS += pre-process.o
  80   80  LIB_OBJS += ptrlist.o
  81   81  LIB_OBJS += ptrmap.o
  82   82  LIB_OBJS += scope.o
  83   83  LIB_OBJS += show-parse.o
  84   84  LIB_OBJS += simplify.o
  85   85  LIB_OBJS += sort.o
  86   86  LIB_OBJS += ssa.o
  87   87  LIB_OBJS += sset.o
  88   88  LIB_OBJS += stats.o
  89   89  LIB_OBJS += storage.o
  90   90  LIB_OBJS += symbol.o
  91   91  LIB_OBJS += target.o
  92   92  LIB_OBJS += tokenize.o
  93   93  LIB_OBJS += unssa.o
  94   94  LIB_OBJS += utils.o
  95   95  LIB_OBJS += macro_table.o
  96   96  LIB_OBJS += token_store.o
  97   97  LIB_OBJS += hashtable.o
  98   98  
  99   99  SMATCH_OBJS =
 100  100  SMATCH_OBJS += avl.o
 101  101  SMATCH_OBJS += smatch_about_fn_ptr_arg.o
 102  102  SMATCH_OBJS += smatch_address.o
 103  103  SMATCH_OBJS += smatch_annotate.o
 104  104  SMATCH_OBJS += smatch_array_values.o
 105  105  SMATCH_OBJS += smatch_assigned_expr.o
 106  106  SMATCH_OBJS += smatch_bits.o
 107  107  SMATCH_OBJS += smatch_buf_comparison.o
 108  108  SMATCH_OBJS += smatch_buf_size.o
 109  109  SMATCH_OBJS += smatch_capped.o
 110  110  SMATCH_OBJS += smatch_common_functions.o
 111  111  SMATCH_OBJS += smatch_comparison.o
 112  112  SMATCH_OBJS += smatch_conditions.o
 113  113  SMATCH_OBJS += smatch_constraints.o
 114  114  SMATCH_OBJS += smatch_constraints_required.o
 115  115  SMATCH_OBJS += smatch_container_of.o
 116  116  SMATCH_OBJS += smatch_data_source.o
 117  117  SMATCH_OBJS += smatch_db.o
 118  118  SMATCH_OBJS += smatch_equiv.o
 119  119  SMATCH_OBJS += smatch_estate.o
 120  120  SMATCH_OBJS += smatch_expressions.o
 121  121  SMATCH_OBJS += smatch_expression_stacks.o
 122  122  SMATCH_OBJS += smatch_extra.o
 123  123  SMATCH_OBJS += smatch_files.o
 124  124  SMATCH_OBJS += smatch_flow.o
 125  125  SMATCH_OBJS += smatch_fn_arg_link.o
 126  126  SMATCH_OBJS += smatch_function_hooks.o
 127  127  SMATCH_OBJS += smatch_function_info.o
 128  128  SMATCH_OBJS += smatch_function_ptrs.o
 129  129  SMATCH_OBJS += smatch_helper.o
 130  130  SMATCH_OBJS += smatch_hooks.o
 131  131  SMATCH_OBJS += smatch_ignore.o
 132  132  SMATCH_OBJS += smatch_imaginary_absolute.o
 133  133  SMATCH_OBJS += smatch_implied.o
 134  134  SMATCH_OBJS += smatch_impossible.o
 135  135  SMATCH_OBJS += smatch_integer_overflow.o
 136  136  SMATCH_OBJS += smatch_kernel_user_data.o
 137  137  SMATCH_OBJS += smatch_links.o
 138  138  SMATCH_OBJS += smatch_math.o
 139  139  SMATCH_OBJS += smatch_mem_tracker.o
 140  140  SMATCH_OBJS += smatch_modification_hooks.o
 141  141  SMATCH_OBJS += smatch_mtag_data.o
 142  142  SMATCH_OBJS += smatch_mtag_map.o
 143  143  SMATCH_OBJS += smatch_mtag.o
 144  144  SMATCH_OBJS += smatch_nul_terminator.o
 145  145  SMATCH_OBJS += smatch_param_cleared.o
 146  146  SMATCH_OBJS += smatch_param_compare_limit.o
 147  147  SMATCH_OBJS += smatch_parameter_names.o
 148  148  SMATCH_OBJS += smatch_param_filter.o
 149  149  SMATCH_OBJS += smatch_param_limit.o
 150  150  SMATCH_OBJS += smatch_param_set.o
 151  151  SMATCH_OBJS += smatch_param_to_mtag_data.o
 152  152  SMATCH_OBJS += smatch_param_used.o
 153  153  SMATCH_OBJS += smatch_parse_call_math.o
 154  154  SMATCH_OBJS += smatch_passes_array_size.o
 155  155  SMATCH_OBJS += smatch_project.o
 156  156  SMATCH_OBJS += smatch_ranges.o
 157  157  SMATCH_OBJS += smatch_real_absolute.o
 158  158  SMATCH_OBJS += smatch_recurse.o
 159  159  SMATCH_OBJS += smatch_returns.o
 160  160  SMATCH_OBJS += smatch_return_to_param.o
 161  161  SMATCH_OBJS += smatch_scope.o
 162  162  SMATCH_OBJS += smatch_slist.o
 163  163  SMATCH_OBJS += smatch_start_states.o
 164  164  SMATCH_OBJS += smatch_statement_count.o
 165  165  SMATCH_OBJS += smatch_states.o
 166  166  SMATCH_OBJS += smatch_stored_conditions.o
 167  167  SMATCH_OBJS += smatch_string_list.o
 168  168  SMATCH_OBJS += smatch_strings.o
 169  169  SMATCH_OBJS += smatch_strlen.o
 170  170  SMATCH_OBJS += smatch_struct_assignment.o
 171  171  SMATCH_OBJS += smatch_sval.o
 172  172  SMATCH_OBJS += smatch_tracker.o
 173  173  SMATCH_OBJS += smatch_type_links.o
 174  174  SMATCH_OBJS += smatch_type.o
 175  175  SMATCH_OBJS += smatch_type_val.o
 176  176  SMATCH_OBJS += smatch_unknown_value.o
 177  177  SMATCH_OBJS += smatch_untracked_param.o
 178  178  SMATCH_OBJS += smatch_var_sym.o
 179  179  
 180  180  SMATCH_CHECK_OBJS:sh=ls src/check_*.c | sed -e 's+\.c+.o+;s+src/++;'
 181  181  
 182  182  OBJS = smatch.o $(LIB_OBJS) $(SMATCH_OBJS) $(SMATCH_CHECK_OBJS)
 183  183  
 184  184  SMATCH_DATA = \
 185  185          illumos_kernel.skipped_functions \
 186  186          illumos_user.skipped_functions
 187  187  
 188  188  SMATCH_DB_DATA =
 189  189  SMATCH_DB_DATA += call_implies.schema
 190  190  SMATCH_DB_DATA += function_ptr.schema
 191  191  SMATCH_DB_DATA += mtag_map.schema
 192  192  SMATCH_DB_DATA += caller_info.schema
 193  193  SMATCH_DB_DATA += function_type.schema
 194  194  SMATCH_DB_DATA += param_map.schema
 195  195  SMATCH_DB_DATA += common_caller_info.schema
 196  196  SMATCH_DB_DATA += function_type_info.schema
 197  197  SMATCH_DB_DATA += parameter_name.schema
 198  198  SMATCH_DB_DATA += constraints.schema
 199  199  SMATCH_DB_DATA += function_type_size.schema
 200  200  SMATCH_DB_DATA += return_implies.schema
 201  201  SMATCH_DB_DATA += constraints_required.schema
 202  202  SMATCH_DB_DATA += function_type_value.schema
 203  203  SMATCH_DB_DATA += return_states.schema
 204  204  SMATCH_DB_DATA += data_info.schema
 205  205  SMATCH_DB_DATA += local_values.schema
 206  206  SMATCH_DB_DATA += sink_info.schema
 207  207  SMATCH_DB_DATA += db.schema
 208  208  SMATCH_DB_DATA += mtag_about.schema
 209  209  SMATCH_DB_DATA += type_info.schema
 210  210  SMATCH_DB_DATA += fn_data_link.schema
 211  211  SMATCH_DB_DATA += mtag_alias.schema
 212  212  SMATCH_DB_DATA += type_size.schema
 213  213  SMATCH_DB_DATA += fn_ptr_data_link.schema
 214  214  SMATCH_DB_DATA += mtag_data.schema
 215  215  SMATCH_DB_DATA += type_value.schema
 216  216  
 217  217  ROOTONBLDDATAFILES = $(SMATCH_DATA:%=$(SMATCHDATADIR)/smatch_data/%)
 218  218  ROOTONBLDDATAFILES += $(SMATCH_DB_DATA:%=$(SMATCHDATADIR)/smatch_data/db/%)
 219  219  
 220  220  BUILT_HEADERS = src/version.h src/check_list_local.h
 221  221  
 222  222  .KEEP_STATE:
 223  223  
 224  224  .PARALLEL: $(OBJS)
 225  225  
 226  226  all: $(PROG)
 227  227  
 228  228  install: all .WAIT $(ROOTONBLDMACHPROG) $(ROOTONBLDDATAFILES)
 229  229  
 230  230  clean:
 231  231          rm -f $(OBJS) $(BUILT_HEADERS)
 232  232  
 233  233  $(ROOTONBLDDATAFILES): $(SMATCHDATADIR)/smatch_data/db
 234  234  
 235  235  $(SMATCHDATADIR)/smatch_data/%: src/smatch_data/%
 236  236          $(INS.file)
 237  237  
 238  238  $(SMATCHDATADIR)/smatch_data/db:
 239  239          $(INS.dir)
 240  240  
 241  241  $(SMATCHDATADIR)/smatch_data:
 242  242          $(INS.dir)
 243  243  
 244  244  $(PROG): $(OBJS)
 245  245          $(LINK.c) $(OBJS) -o $@ $(LDLIBS)
 246  246          $(POST_PROCESS)
 247  247  
 248  248  %.o: src/%.c $(BUILT_HEADERS)
 249  249          $(COMPILE.c) -o $@ $<
 250  250  
 251  251  %.o: src/cwchash/%.c
 252  252          $(COMPILE.c) -o $@ $<
 253  253  
 254  254  src/check_list_local.h:
 255  255          touch src/check_list_local.h
 256  256  
 257  257  src/version.h:
 258  258          echo '#define SPARSE_VERSION "$(SPARSE_VERSION)"' > src/version.h
 259  259  
 260  260  include ../Makefile.targ
  
    | ↓ open down ↓ | 227 lines elided | ↑ open up ↑ | 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX