Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(442)

Unified Diff: linker/Makefile

Issue 156883002: Prep dynamic linker. (Closed) Base URL: https://chromium.googlesource.com/native_client/nacl-bionic.git@master
Patch Set: Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « libc/arch-nacl/syscalls/select.c ('k') | linker/hello.c » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: linker/Makefile
diff --git a/linker/Makefile b/linker/Makefile
index 09378d7adf3a50ad32c7df8c3fd4acea7b5bf9dc..5a2cee223f3a400f0e27088cbbc0b39bb4f2d84d 100644
--- a/linker/Makefile
+++ b/linker/Makefile
@@ -1,28 +1,27 @@
-# Copyright (c) 2013 The Chromium Authors. All rights reserved.
+# Copyright (c) 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# GNU Makefile based on shared rules provided by the Native Client SDK.
# See README.Makefiles for more details.
-VALID_TOOLCHAINS := nacl
-VALID_CONFIGS := Debug Release
-LOADER = sel_ldr
-TARGET=hello_world
-
-NACL_SDK_ROOT ?= $(abspath $(CURDIR)/../..)
-include $(NACL_SDK_ROOT)/tools/tc_common.mk
-
-EXTRA_INCS := -isystem $(abspath ../libc) -isystem $(abspath ../../external/safe-iop/include)
+EXTRA_INCS := -isystem $(SRC_ROOT)/../libc -isystem $(SRC_ROOT)../safe-iop/include
EXTRA_INCS += -Iarch/nacl
-CFLAGS += -std=c99 -DUSES_SSE2 -DFLOATING_POINT -DINET6 -DUSG_COMPAT
+CFLAGS += -std=c99 -DFLOATING_POINT -DINET6 -DUSG_COMPAT
CFLAGS += -DANDROID_SMP=1 -D_GNU_SOURCE -DHAVE_MORECORE=0 -DLINKER_DEBUG=1
-X86_32_CFLAGS += -DANDROID_X86_LINKER
+X86_32_CFLAGS += -DANDROID_X86_LINKER -DUSES_SSE2
X86_64_CFLAGS += -DANDROID_X86_64_LINKER
ARM_CFLAGS += -DANDROID_ARM_LINKER
+ifeq ($(NACL_ARCH),arm)
+ARCH_FLAGS:=$(ARM_CFLAGS)
+else
+ARCH_FLAGS:=$(X86_CFLAGS)
+endif
+
+
# NEXE_ARGS := --library-path $(OUTDIR):$(LIBDIR)/nacl_$(NACL_ARCH)/Debug hello_world_$(NACL_ARCH).nexe 1 2 3
RUNNABLE_SOURCES = \
@@ -48,24 +47,42 @@ X86_32_LD_TAIL_STATIC := -T ../../arch-x86_32/lib/runnable-ld.lds -lsupc++ -lc -
X86_64_LD_TAIL_STATIC := -T ../../arch-x86_64/lib/runnable-ld.lds -lsupc++ -lc -lgcc $(LIBDIR)/nacl_x86_64/$(CONFIG)/crtend_st.o
ARM_LD_TAIL_STATIC := -T ../../arch-arm/lib/runnable-ld.lds -lsupc++ -lc -lgcc $(ARM_LIBGCC_A) $(LIBDIR)/nacl_arm/$(CONFIG)/crtend_st.o
-RUNNABLE_LD:=-static -lc -Wl,-Ttext,0x20000
-$(foreach src,$(RUNNABLE_SOURCES),$(eval $(call COMPILE_RULE,$(src),$(CFLAGS) $(EXTRA_INCS),$(OUTDIR))))
-$(eval $(call STATIC_LINK_RULE,runnable-ld,$(RUNNABLE_SOURCES),$(RUNNABLE_LD),$(OUTDIR)))
+RUNNABLE_LD:=-nostdlib -static -lc -Wl,-Ttext,0x20000
+RUNNABLE_OBJECTS := $(subst .c,.o,$(subst .cpp,.o,$(RUNNABLE_SOURCES)))
+$(foreach src,$(RUNNABLE_SOURCES),$(eval $(call BASIC_COMPILE_TARGET,$(basename $(src)).o,$(SRC_ROOT)/$(src),$(CC),-std=gnu99 -g $(CFLAGS) $(EXTRA_INCS) $(ARCH_FLAGS))))
+$(eval $(call BASIC_LINK_TARGET,$(INS_ROOT)/runnable-ld.so,$(RUNNABLE_OBJECTS),$(CC),$(RUNNABLE_LD),,-lsupc++ -lc -lgcc_eh -lgcc))
-# Install Runnable into LIB directory
-ifneq (,$(findstring x86_32,$(ARCHES)))
-$(eval $(call INSTALL_RULE,$(LIBDIR)/nacl_x86_32/$(CONFIG)/runnable-ld.so,$(OUTDIR)/runnable-ld_x86_32.nexe,,RUNNABLE_TARGETS))
-endif
+hello: $(SRC_ROOT)/hello.c
+ $(CC) $< -g -o $@ -Wl,-Ttext-segment,0x100000 -lgcc_s
-ifneq (,$(findstring x86_64,$(ARCHES)))
-$(eval $(call INSTALL_RULE,$(LIBDIR)/nacl_x86_64/$(CONFIG)/runnable-ld.so,$(OUTDIR)/runnable-ld_x86_64.nexe,,RUNNABLE_TARGETS))
-endif
+
+QEMU_PATH:=$(TOOLCHAIN_PATH)/../linux_arm-trusted
+TOOL_PATH?=$(NACL_SDK_ROOT)/tools
-ifneq (,$(findstring arm,$(ARCHES)))
-$(eval $(call INSTALL_RULE,$(LIBDIR)/nacl_arm/$(CONFIG)/runnable-ld.so,$(OUTDIR)/runnable-ld_arm.nexe,,RUNNABLE_TARGETS))
-endif
+QEMU_ARGS:=$(QEMU_PATH)/qemu-arm -L $(QEMU_PATH) -cpu cortex-a8
+SEL_LDR:= $(TOOL_PATH)/nacl_helper_bootstrap_arm $(TOOL_PATH)/sel_ldr_arm
+HELPER_ARGS:=--r_debug=0xXXXXXXXXXXXXXXXX --reserved_at_zero=0xXXXXXXXXXXXXXXXX
+SEL_ARGS+= -a -c -c -Q -B $(TOOL_PATH)/irt_core_arm.nexe
+
+ARM_MACHINE ?= panda0.mtv
+ARM_PATH ?= $(USER)
+SSH_PATH ?= $(ARM_MACHINE):~/$(ARM_PATH)
+
+.PHONY : test debug ssh-all ssh
+test: hello
+ $(QEMU_ARGS) $(SEL_LDR) $(HELPER_ARGS) $(SEL_ARGS) $(INS_ROOT)/runnable-ld.so hello 1 2 3 4
+
+debug : hello
+ $(QEMU_ARGS) $(SEL_LDR) $(HELPER_ARGS) -g $(SEL_ARGS) $(INS_ROOT)/runnable-ld.so hello 1 2 3 4
+ssh : hello
+ scp hello $(SSH_PATH)
+ scp $(INS_ROOT)/runnable-ld.so $(SSH_PATH)
+ scp $(SRC_ROOT)/ld.gdb
-$(eval $(call COMPILE_RULE,hello.c,$(CFLAGS),$(OUTDIR)))
-$(eval $(call DYNAMIC_LINK_RULE,hello_world,hello.c,,$(OUTDIR),$(RUNNABLE_TARGETS)))
+ssh-all: ssh
+ scp $(TOOL_PATH)/irt_core_arm.nexe $(SSH_PATH)
+ scp $(TOOL_PATH)/sel_ldr_arm $(SSH_PATH)
+ scp $(TOOL_PATH)/nacl_helper_bootstrap_arm $(SSH_PATH)
+ scp $(INS_ROOT)/*.so $(SSH_PATH)
« no previous file with comments | « libc/arch-nacl/syscalls/select.c ('k') | linker/hello.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698