Changeset 440 for trunk/kernel/Makefile


Ignore:
Timestamp:
May 3, 2018, 5:51:22 PM (6 years ago)
Author:
alain
Message:

1/ Fix a bug in the Multithreaded "sort" applicationr:
The pthread_create() arguments must be declared as global variables.
2/ The exit syscall can be called by any thread of a process..

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/kernel/Makefile

    r439 r440  
    88endif
    99
    10 #We choose drivers and hal file we need to link with kernel.elf
     10#We choose drivers and hal file to be linked with kernel.elf
    1111ifeq ($(ARCH_NAME), tsar_mips32)
     12
    1213  DRIVERS_OBJS = $(HAL_ARCH)/build/drivers/soclib_tty.o  \
    13                 $(HAL_ARCH)/build/drivers/soclib_bdv.o  \
    14                 $(HAL_ARCH)/build/drivers/soclib_hba.o  \
    15                 $(HAL_ARCH)/build/drivers/soclib_mmc.o  \
    16                 $(HAL_ARCH)/build/drivers/soclib_pic.o  \
    17                 $(HAL_ARCH)/build/drivers/soclib_nic.o  \
    18                 $(HAL_ARCH)/build/drivers/soclib_dma.o  \
    19                 $(HAL_ARCH)/build/drivers/soclib_iob.o
    20 
    21   CORE_OBJS    = $(HAL_ARCH)/build/core/hal_special.o      \
    22                 $(HAL_ARCH)/build/core/hal_context.o      \
    23                 $(HAL_ARCH)/build/core/hal_atomic.o       \
    24                 $(HAL_ARCH)/build/core/hal_remote.o       \
    25                 $(HAL_ARCH)/build/core/hal_uspace.o       \
    26                 $(HAL_ARCH)/build/core/hal_irqmask.o      \
    27                 $(HAL_ARCH)/build/core/hal_gpt.o          \
    28                 $(HAL_ARCH)/build/core/hal_ppm.o          \
    29                 $(HAL_ARCH)/build/core/hal_vmm.o          \
    30                 $(HAL_ARCH)/build/core/hal_exception.o    \
    31                 $(HAL_ARCH)/build/core/hal_interrupt.o    \
    32                 $(HAL_ARCH)/build/core/hal_syscall.o      \
    33                 $(HAL_ARCH)/build/core/hal_drivers.o      \
    34                 $(HAL_ARCH)/build/core/hal_kentry.o       \
    35                 $(HAL_ARCH)/build/core/hal_switch.o
     14                 $(HAL_ARCH)/build/drivers/soclib_bdv.o  \
     15                 $(HAL_ARCH)/build/drivers/soclib_hba.o  \
     16                 $(HAL_ARCH)/build/drivers/soclib_mmc.o  \
     17                 $(HAL_ARCH)/build/drivers/soclib_pic.o  \
     18                 $(HAL_ARCH)/build/drivers/soclib_nic.o  \
     19                 $(HAL_ARCH)/build/drivers/soclib_dma.o  \
     20                 $(HAL_ARCH)/build/drivers/soclib_iob.o
     21
     22  HAL_OBJS     = $(HAL_ARCH)/build/core/hal_special.o    \
     23                 $(HAL_ARCH)/build/core/hal_context.o    \
     24                 $(HAL_ARCH)/build/core/hal_atomic.o     \
     25                 $(HAL_ARCH)/build/core/hal_remote.o     \
     26                 $(HAL_ARCH)/build/core/hal_uspace.o     \
     27                 $(HAL_ARCH)/build/core/hal_irqmask.o    \
     28                 $(HAL_ARCH)/build/core/hal_gpt.o        \
     29                 $(HAL_ARCH)/build/core/hal_ppm.o        \
     30                 $(HAL_ARCH)/build/core/hal_vmm.o        \
     31                 $(HAL_ARCH)/build/core/hal_kentry.o     \
     32                 $(HAL_ARCH)/build/core/hal_switch.o     \
     33                 $(HAL_ARCH)/build/core/hal_syscall.o    \
     34                 $(HAL_ARCH)/build/core/hal_exception.o  \
     35                 $(HAL_ARCH)/build/core/hal_interrupt.o  \
     36                 $(HAL_ARCH)/build/core/hal_drivers.o
    3637endif
    3738
     
    3940
    4041  DRIVERS_OBJS = $(HAL_ARCH)/build/drivers/ioc_ata.o     \
    41                 $(HAL_ARCH)/build/drivers/pic_apic.o    \
    42                 $(HAL_ARCH)/build/drivers/txt_rs232.o
    43 
    44   CORE_OBJS    = \
    45                 $(HAL_ARCH)/build/core/hal_boot.o         \
    46                 $(HAL_ARCH)/build/core/hal_smpboot.o      \
    47                 $(HAL_ARCH)/build/core/hal_init.o         \
    48                 $(HAL_ARCH)/build/core/hal_cpu.o          \
    49                 $(HAL_ARCH)/build/core/hal_kentry.o       \
    50                 $(HAL_ARCH)/build/core/hal_acpi.o         \
    51                 $(HAL_ARCH)/build/core/hal_apic.o         \
    52                 $(HAL_ARCH)/build/core/x86_printf.o       \
    53                 $(HAL_ARCH)/build/core/hal_drivers.o      \
    54                 $(HAL_ARCH)/build/core/hal_special.o      \
    55                 $(HAL_ARCH)/build/core/hal_context.o      \
    56                 $(HAL_ARCH)/build/core/hal_atomic.o       \
    57                 $(HAL_ARCH)/build/core/hal_remote.o       \
    58                 $(HAL_ARCH)/build/core/hal_uspace.o       \
    59                 $(HAL_ARCH)/build/core/hal_irqmask.o      \
    60                 $(HAL_ARCH)/build/core/hal_gpt.o          \
    61                 $(HAL_ARCH)/build/core/hal_ppm.o          \
    62                 $(HAL_ARCH)/build/core/hal_exception.o    \
    63                 $(HAL_ARCH)/build/core/hal_interrupt.o    \
    64                 $(HAL_ARCH)/build/core/hal_syscall.o
    65 
     42                 $(HAL_ARCH)/build/drivers/pic_apic.o    \
     43                 $(HAL_ARCH)/build/drivers/txt_rs232.o
     44
     45  HAL_OBJS     = $(HAL_ARCH)/build/core/hal_boot.o       \
     46                 $(HAL_ARCH)/build/core/hal_smpboot.o    \
     47                 $(HAL_ARCH)/build/core/hal_init.o       \
     48                 $(HAL_ARCH)/build/core/hal_cpu.o        \
     49                 $(HAL_ARCH)/build/core/hal_kentry.o     \
     50                 $(HAL_ARCH)/build/core/hal_acpi.o       \
     51                 $(HAL_ARCH)/build/core/hal_apic.o       \
     52                 $(HAL_ARCH)/build/core/x86_printf.o     \
     53                 $(HAL_ARCH)/build/core/hal_drivers.o    \
     54                 $(HAL_ARCH)/build/core/hal_special.o    \
     55                 $(HAL_ARCH)/build/core/hal_context.o    \
     56                 $(HAL_ARCH)/build/core/hal_atomic.o     \
     57                 $(HAL_ARCH)/build/core/hal_remote.o     \
     58                 $(HAL_ARCH)/build/core/hal_uspace.o     \
     59                 $(HAL_ARCH)/build/core/hal_irqmask.o    \
     60                 $(HAL_ARCH)/build/core/hal_gpt.o        \
     61                 $(HAL_ARCH)/build/core/hal_ppm.o        \
     62                 $(HAL_ARCH)/build/core/hal_exception.o  \
     63                 $(HAL_ARCH)/build/core/hal_interrupt.o  \
     64                 $(HAL_ARCH)/build/core/hal_syscall.o
    6665endif
    6766
     
    187186# List of directories to be searched for included files
    188187# when compiling for kernel.elf generation
    189 KERNEL_INCLUDE = -I.                  \
    190                  -Ikern             \
    191                  -Idevices          \
    192                  -Isyscalls         \
     188KERNEL_INCLUDE = -I.                   \
     189                 -Ikern                \
     190                 -Idevices             \
     191                 -Isyscalls            \
    193192                 -I$(HAL_ARCH)/drivers \
    194                  -Isyscalls         \
    195                  -Ilibk             \
    196                  -Imm               \
    197                  -Ifs               \
    198                  -I../tools/arch_info         \
    199                  -I$(HAL)/generic             \
     193                 -Isyscalls            \
     194                 -Ilibk                \
     195                 -Imm                  \
     196                 -Ifs                  \
     197                 -I../tools/arch_info  \
     198                 -I$(HAL)/generic      \
    200199                 -I$(HAL_ARCH)/core    \
    201200                 -I..
     
    225224#######################################
    226225# Rules to generate kernel/kern objects
    227 build/kern/%.o:             kern/%.c             \
    228                                 kern/%.h             \
    229                                 kernel_config.h             \
    230                                 $(HAL_ARCH)/core/hal_types.h
     226build/kern/%.o:             kern/%.c                      \
     227                        kern/%.h                      \
     228                        kernel_config.h               \
     229                        $(HAL_ARCH)/core/hal_types.h
    231230        $(CC) $(KERNEL_INCLUDE) $(CFLAGS) -c -o $@ $<
    232231
     
    234233######################################
    235234# Rules to generate kernel/dev objects
    236 build/devices/%.o:       devices/%.c          \
    237                                 devices/%.h          \
    238                                 kernel_config.h             \
    239                                 $(HAL_ARCH)/core/hal_types.h
     235build/devices/%.o:      devices/%.c                   \
     236                        devices/%.h                   \
     237                        kernel_config.h               \
     238                        $(HAL_ARCH)/core/hal_types.h
    240239        $(CC) $(KERNEL_INCLUDE) $(CFLAGS) -c -o $@ $<
    241240
    242241#####################################
    243242# Rules to generate kernel/mm objects
    244 build/mm/%.o:            mm/%.c               \
    245                                 mm/%.h               \
    246                                 kernel_config.h             \
    247                                 $(HAL_ARCH)/core/hal_types.h
     243build/mm/%.o:           mm/%.c                        \
     244                        mm/%.h                        \
     245                        kernel_config.h               \
     246                        $(HAL_ARCH)/core/hal_types.h
    248247        $(CC) $(KERNEL_INCLUDE) $(CFLAGS) -c -o $@ $<
    249248
    250249#######################################
    251250# Rules to generate kernel/libk objects
    252 build/libk/%.o:          libk/%.c             \
    253                                 libk/%.h             \
    254                                 kernel_config.h             \
    255                                 $(HAL_ARCH)/core/hal_types.h
     251build/libk/%.o:         libk/%.c                      \
     252                        libk/%.h                      \
     253                        kernel_config.h               \
     254                        $(HAL_ARCH)/core/hal_types.h
    256255        $(CC) $(KERNEL_INCLUDE) $(CFLAGS) -c -o $@ $<
    257256
    258257###########################################
    259258# Rules to generate kernel/syscalls objects
    260 build/syscalls/%.o:      syscalls/%.c         \
    261                                 syscalls/syscalls.h  \
    262                                 kernel_config.h             \
    263                                 $(HAL_ARCH)/core/hal_types.h
     259build/syscalls/%.o:     syscalls/%.c                  \
     260                        syscalls/syscalls.h           \
     261                        kernel_config.h               \
     262                        $(HAL_ARCH)/core/hal_types.h
    264263        $(CC) $(KERNEL_INCLUDE) $(CFLAGS) -c -o $@ $<
    265264
    266265#######################################
    267266# Rules to generate kernel/fs objects
    268 build/fs/%.o:            fs/%.c               \
    269                                 fs/%.h               \
    270                                 kernel_config.h             \
    271                                 $(HAL_ARCH)/core/hal_types.h
    272         $(CC) $(KERNEL_INCLUDE) $(CFLAGS) -c -o $@ $<
    273 
    274 #############################################################
     267build/fs/%.o:           fs/%.c                        \
     268                        fs/%.h                        \
     269                        kernel_config.h               \
     270                        $(HAL_ARCH)/core/hal_types.h
     271        $(CC) $(KERNEL_INCLUDE) $(CFLAGS) -c -o $@ $<
     272
     273##############################
    275274# Rule to generate kernel.elf
    276 # TODO the syscalls grouped in SYS_OBJS_2 must be introduced
    277 build/kernel.elf:           $(KERN_OBJS)                \
    278                                 $(CORE_OBJS)                 \
    279                                 $(DEV_OBJS)                 \
    280                                 $(MM_OBJS)                  \
    281                                 $(LIBK_OBJS)                \
    282                                 $(DRIVERS_OBJS)             \
    283                                 $(VFS_OBJS)                 \
    284                                 $(SYS_OBJS_0)               \
    285                                 $(SYS_OBJS_1)               \
    286                                 $(SYS_OBJS_2)               \
    287                                 $(SYS_OBJS_3)               \
    288                                 $(SYS_OBJS_4)               \
    289                                                                 $(HAL_ARCH)/kernel.ld
    290         $(LD) -o $@ -T $(HAL_ARCH)/kernel.ld $(LIBGCC)      \
    291           $(KERN_OBJS) $(CORE_OBJS) $(DEV_OBJS) $(MM_OBJS)   \
    292           $(LIBK_OBJS) $(DRIVERS_OBJS) $(VFS_OBJS)          \
    293           $(SYS_OBJS_0) $(SYS_OBJS_1) $(SYS_OBJS_2)         \
     275build/kernel.elf:           $(KERN_OBJS)                 \
     276                        $(HAL_OBJS_0)                \
     277                        $(HAL_OBJS_1)                \
     278                        $(DEV_OBJS)                  \
     279                        $(MM_OBJS)                   \
     280                        $(LIBK_OBJS)                 \
     281                        $(DRIVERS_OBJS)              \
     282                        $(VFS_OBJS)                  \
     283                        $(SYS_OBJS_0)                \
     284                        $(SYS_OBJS_1)                \
     285                        $(SYS_OBJS_2)                \
     286                        $(SYS_OBJS_3)                \
     287                        $(SYS_OBJS_4)                \
     288                        $(HAL_ARCH)/kernel.ld
     289        $(LD) -o $@ -T $(HAL_ARCH)/kernel.ld $(LIBGCC)         \
     290          $(KERN_OBJS) $(HAL_OBJS) $(DEV_OBJS) $(MM_OBJS)  \
     291          $(LIBK_OBJS) $(DRIVERS_OBJS) $(VFS_OBJS)         \
     292          $(SYS_OBJS_0) $(SYS_OBJS_1) $(SYS_OBJS_2)        \
    294293          $(SYS_OBJS_3) $(SYS_OBJS_4) -lgcc
    295294        $(DU) -D $@ > $@.txt
Note: See TracChangeset for help on using the changeset viewer.