Skip to content

Commit

Permalink
[201811][dhcp] enable building dhcpmon and dhcp6relay debug symbols (#…
Browse files Browse the repository at this point in the history
…9959)

* dhcp6relay: Save the dbgsym package into the target folder (#9013)

This makes it possible to install the debug symbols if needed. Also install
the package into the debug version of sonic-dhcp-relay container.

Signed-off-by: Saikrishna Arcot <[email protected]>

* Package debugging and hardening for dhcpmon and dhcp6relay (#9862)

Enable dbgsym package for dhcpmon.

Allow CFLAGS and LDFLAGS from environment variables to be used
in the dhcp6relay build. This makes sure that the -O2 flag from
dpkg-buildflags gets used.

Finally, enable all hardening flags in dpkg-buildflags for
dhcp6relay and dhcpmon. The change from the default set of flags is that
during linking, immediate binding of symbols is done instead of lazy
binding.

Signed-off-by: Saikrishna Arcot <[email protected]>

* [201811][dhcp] update debian build rules

Signed-off-by: Ying Xie <[email protected]>

Co-authored-by: Saikrishna Arcot <[email protected]>
  • Loading branch information
yxieca and saiarcot895 authored Feb 11, 2022
1 parent 8e6d08a commit 76af3dc
Show file tree
Hide file tree
Showing 9 changed files with 47 additions and 5 deletions.
3 changes: 3 additions & 0 deletions rules/dhcp6relay.mk
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,6 @@ SONIC_DHCP6RELAY = sonic-$(SONIC_DHCP6RELAY_PKG_NAME)_$(SONIC_DHCP6RELAY_VERSION
$(SONIC_DHCP6RELAY)_DEPENDS = $(LIBSWSSCOMMON) $(LIBHIREDIS) $(LIBSWSSCOMMON_DEV) $(LIBHIREDIS_DEV)
$(SONIC_DHCP6RELAY)_SRC_PATH = $(SRC_PATH)/$(SONIC_DHCP6RELAY_PKG_NAME)
SONIC_DPKG_DEBS += $(SONIC_DHCP6RELAY)

SONIC_DHCP6RELAY_DBG = sonic-$(SONIC_DHCP6RELAY_PKG_NAME)-dbg_$(SONIC_DHCP6RELAY_VERSION)_amd64.deb
$(eval $(call add_derived_package,$(SONIC_DHCP6RELAY),$(SONIC_DHCP6RELAY_DBG)))
3 changes: 3 additions & 0 deletions rules/dhcpmon.mk
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,6 @@ SONIC_DHCPMON_PKG_NAME = dhcpmon
SONIC_DHCPMON = sonic-$(SONIC_DHCPMON_PKG_NAME)_$(SONIC_DHCPMON_VERSION)_amd64.deb
$(SONIC_DHCPMON)_SRC_PATH = $(SRC_PATH)/$(SONIC_DHCPMON_PKG_NAME)
SONIC_DPKG_DEBS += $(SONIC_DHCPMON)

SONIC_DHCPMON_DBG = sonic-$(SONIC_DHCPMON_PKG_NAME)-dbg_$(SONIC_DHCPMON_VERSION)_amd64.deb
$(eval $(call add_derived_package,$(SONIC_DHCPMON),$(SONIC_DHCPMON_DBG)))
2 changes: 1 addition & 1 deletion rules/docker-dhcp-relay.mk
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ $(DOCKER_DHCP_RELAY)_PATH = $(DOCKERS_PATH)/docker-dhcp-relay

$(DOCKER_DHCP_RELAY)_DEPENDS += $(ISC_DHCP_COMMON) $(ISC_DHCP_RELAY) $(REDIS_TOOLS) $(SONIC_DHCPMON) $(SONIC_DHCP6RELAY) $(LIBSWSSCOMMON)
$(DOCKER_DHCP_RELAY)_DBG_DEPENDS = $($(DOCKER_CONFIG_ENGINE)_DBG_DEPENDS)
$(DOCKER_DHCP_RELAY)_DBG_DEPENDS += $(ISC_DHCP_DBG)
$(DOCKER_DHCP_RELAY)_DBG_DEPENDS += $(ISC_DHCP_DBG) $(SONIC_DHCP6RELAY_DBG) $(SONIC_DHCPMON_DBG)
$(DOCKER_DHCP_RELAY)_DBG_IMAGE_PACKAGES = $($(DOCKER_CONFIG_ENGINE)_DBG_IMAGE_PACKAGES)

$(DOCKER_DHCP_RELAY)_LOAD_DOCKERS = $(DOCKER_CONFIG_ENGINE)
Expand Down
6 changes: 3 additions & 3 deletions src/dhcp6relay/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ CP := cp
MKDIR := mkdir
CC := g++
MV := mv
LIBS := -levent -lswsscommon -pthread -lboost_thread -lboost_system -I $(PWD)/../sonic-swss-common/common
CFLAGS = -g -Wall -std=gnu11
LIBS := -levent -lhiredis -lswsscommon -pthread -lboost_thread -lboost_system
CFLAGS += -Wall -std=c++14 -fPIE -I$(PWD)/../sonic-swss-common/common
PWD := $(shell pwd)

ifneq ($(MAKECMDGOALS),clean)
Expand All @@ -21,7 +21,7 @@ all: sonic-dhcp6relay
sonic-dhcp6relay: $(OBJS)
@echo 'Building target: $@'
@echo 'Invoking: G++ Linker'
$(CC) -o $(DHCP6RELAY_TARGET) $(OBJS) $(LIBS)
$(CC) $(LDFLAGS) -o $(DHCP6RELAY_TARGET) $(OBJS) $(LIBS)
@echo 'Finished building target: $@'
@echo ' '

Expand Down
10 changes: 10 additions & 0 deletions src/dhcp6relay/debian/control
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,13 @@ Depends: libevent-2.0-5,
libboost-thread1.55.0,
libboost-system1.55.0
Description: SONiC DHCPv6 Relay

Package: sonic-dhcp6relay-dbg
Architecture: any
Section: debug
Priority: extra
Built-Using: ${misc:Built-Using}
Depends: libevent-2.0-5,
libboost-thread1.55.0,
libboost-system1.55.0
Description: SONiC DHCPv6 Relay debug symbols
8 changes: 8 additions & 0 deletions src/dhcp6relay/debian/rules
Original file line number Diff line number Diff line change
@@ -1,4 +1,12 @@
#!/usr/bin/make -f

export DEB_BUILD_MAINT_OPTIONS=hardening=+all

%:
dh $@ --parallel

override_dh_strip:
dh_strip --dbg-package=sonic-dhcp6relay-dbg

override_dh_auto_install:
dh_auto_install --destdir=debian/sonic-dhcp6relay
2 changes: 1 addition & 1 deletion src/dhcp6relay/src/subdir.mk
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,6 @@ C_DEPS += \
src/%.o: src/%.cpp
@echo 'Building file: $<'
@echo 'Invoking: GCC C++ Compiler'
$(CC) -std=c++14 -D__FILENAME__="$(subst src/,,$<)" $(LIBS) -Wall -c -fmessage-length=0 -fPIC -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"
$(CC) -D__FILENAME__="$(subst src/,,$<)" $(CFLAGS) -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"
@echo 'Finished building: $<'
@echo ' '
10 changes: 10 additions & 0 deletions src/dhcpmon/debian/control
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,16 @@ XS-Go-Import-Path: github.com/Azure/sonic-buildimage

Package: sonic-dhcpmon
Architecture: any
Section: devel
Priority: optional
Built-Using: ${misc:Built-Using}
Depends: libevent-2.0-5
Description: SONiC DHCP Monitor

Package: sonic-dhcpmon-dbg
Architecture: any
Section: debug
Priority: extra
Built-Using: ${misc:Built-Using}
Depends: libevent-2.0-5
Description: SONiC DHCP Monitor debug symbols
8 changes: 8 additions & 0 deletions src/dhcpmon/debian/rules
Original file line number Diff line number Diff line change
@@ -1,7 +1,15 @@
#!/usr/bin/make -f

export DEB_BUILD_MAINT_OPTIONS=hardening=+all

DEB_CFLAGS_APPEND=-std=gnu11
export DEB_CFLAGS_APPEND

%:
dh $@ --parallel

override_dh_strip:
dh_strip --dbg-package=sonic-dhcpmon-dbg

override_dh_auto_install:
dh_auto_install --destdir=debian/sonic-dhcpmon

0 comments on commit 76af3dc

Please sign in to comment.