ICU-20526 fix pkgdata where LD_SONAME has a trailing space
- added PKGDATA_TRAILING_SPACE to all of the pkgdataMakefile.in file. - NOTE: Users who create their own pkgdata.inc / icupkg.inc files may need to recreate this PKGDATA_TRAILING_SPACE behavior. - used the above variable, normally undefined, in mh-* files that need a trailing space - Also, fixed use of system() in pkgdata.cpp per ICU-20538 This was causing pkgdata to return a zero status even on clang failure, masking this issue.
This commit is contained in:
parent
1935801c3a
commit
83a0542b5b
@ -31,9 +31,9 @@ SHLIB.cc= $(CXX) -dynamiclib -dynamic $(CXXFLAGS) $(LDFLAGS) $(LD_SOOPTIONS)
|
||||
|
||||
## Compiler switches to embed a library name and version information
|
||||
ifeq ($(ENABLE_RPATH),YES)
|
||||
LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name $(libdir)/$(notdir $(MIDDLE_SO_TARGET))
|
||||
LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name $(libdir)/$(notdir $(MIDDLE_SO_TARGET)) $(PKGDATA_TRAILING_SPACE)
|
||||
else
|
||||
LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name $(notdir $(MIDDLE_SO_TARGET))
|
||||
LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name $(notdir $(MIDDLE_SO_TARGET)) $(PKGDATA_TRAILING_SPACE)
|
||||
endif
|
||||
|
||||
## Compiler switch to embed a runtime search path
|
||||
|
@ -56,7 +56,7 @@ LD_RPATH_PRE= -R
|
||||
#LIBRARY_PATH_PREFIX=/usr/lib/lwp:
|
||||
|
||||
## Compiler switch to embed a library name
|
||||
LD_SONAME = -h $(notdir $(MIDDLE_SO_TARGET))
|
||||
LD_SONAME = -h $(notdir $(MIDDLE_SO_TARGET)) $(PKGDATA_TRAILING_SPACE)
|
||||
|
||||
## Shared object suffix
|
||||
SO= so
|
||||
|
@ -25,7 +25,7 @@ LD_RPATH= -R'$$'ORIGIN
|
||||
LD_RPATH_PRE= -R
|
||||
|
||||
## Compiler switch to embed a library name
|
||||
LD_SONAME = -h $(notdir $(MIDDLE_SO_TARGET))
|
||||
LD_SONAME = -h $(notdir $(MIDDLE_SO_TARGET)) $(PKGDATA_TRAILING_SPACE)
|
||||
|
||||
## Shared library options
|
||||
LD_SOOPTIONS= -Wl,-Bsymbolic
|
||||
|
@ -16,6 +16,7 @@ include $(top_builddir)/icudefs.mk
|
||||
|
||||
OUTPUTFILE=pkgdata.inc
|
||||
MIDDLE_SO_TARGET=
|
||||
PKGDATA_TRAILING_SPACE=" "
|
||||
|
||||
all : clean
|
||||
@echo GENCCODE_ASSEMBLY_TYPE=$(GENCCODE_ASSEMBLY) >> $(OUTPUTFILE)
|
||||
@ -36,7 +37,6 @@ all : clean
|
||||
@echo RANLIB=$(RANLIB) >> $(OUTPUTFILE)
|
||||
@echo INSTALL_CMD=$(INSTALL-L) >> $(OUTPUTFILE)
|
||||
|
||||
|
||||
clean :
|
||||
$(RMV) $(OUTPUTFILE)
|
||||
|
||||
|
@ -16,6 +16,7 @@ include $(top_builddir)/icudefs.mk
|
||||
|
||||
OUTPUTFILE=icupkg.inc
|
||||
MIDDLE_SO_TARGET=
|
||||
PKGDATA_TRAILING_SPACE=" "
|
||||
|
||||
all : clean
|
||||
@echo GENCCODE_ASSEMBLY_TYPE=$(GENCCODE_ASSEMBLY) >> $(OUTPUTFILE)
|
||||
@ -36,7 +37,6 @@ all : clean
|
||||
@echo RANLIB=$(RANLIB) >> $(OUTPUTFILE)
|
||||
@echo INSTALL_CMD=$(INSTALL) >> $(OUTPUTFILE)
|
||||
|
||||
|
||||
clean :
|
||||
$(RMV) $(OUTPUTFILE)
|
||||
|
||||
|
@ -14,9 +14,9 @@ top_builddir = ../..
|
||||
## All the flags and other definitions are included here.
|
||||
include $(top_builddir)/icudefs.mk
|
||||
|
||||
MIDDLE_SO_TARGET=
|
||||
|
||||
OUTPUTFILE=pkgdata.inc
|
||||
MIDDLE_SO_TARGET=
|
||||
PKGDATA_TRAILING_SPACE=" "
|
||||
|
||||
all : clean
|
||||
@echo GENCCODE_ASSEMBLY_TYPE=$(GENCCODE_ASSEMBLY) >> $(OUTPUTFILE)
|
||||
|
@ -14,9 +14,9 @@ top_builddir = ../..
|
||||
## All the flags and other definitions are included here.
|
||||
include $(top_builddir)/icudefs.mk
|
||||
|
||||
MIDDLE_SO_TARGET=
|
||||
|
||||
OUTPUTFILE=pkgdata.inc
|
||||
MIDDLE_SO_TARGET=
|
||||
PKGDATA_TRAILING_SPACE=" "
|
||||
|
||||
all : clean
|
||||
@echo GENCCODE_ASSEMBLY_TYPE=$(GENCCODE_ASSEMBLY) >> $(OUTPUTFILE)
|
||||
|
@ -504,7 +504,6 @@ main(int argc, char* argv[]) {
|
||||
if (o.files != NULL) {
|
||||
pkg_deleteList(o.files);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -544,6 +543,7 @@ normal_command_mode:
|
||||
int result = system(cmd);
|
||||
if (result != 0) {
|
||||
fprintf(stderr, "-- return status = %d\n", result);
|
||||
result = 1; // system() result code is platform specific.
|
||||
}
|
||||
|
||||
if (cmd != cmdBuffer && cmd != command) {
|
||||
|
Loading…
Reference in New Issue
Block a user