summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--NEWS15
-rwxr-xr-xconfigure3
-rw-r--r--m4/slibtool.m44
-rw-r--r--project/tagver.mk2
-rw-r--r--src/arbits/slbt_archive_merge.c8
-rw-r--r--src/arbits/slbt_archive_store.c8
-rw-r--r--src/internal/slibtool_tmpfile_impl.c5
-rw-r--r--src/logic/slbt_exec_stoolie.c2
-rw-r--r--src/skin/slbt_skin_stoolie.c2
9 files changed, 37 insertions, 12 deletions
diff --git a/NEWS b/NEWS
index 22a4366..258b7fe 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,18 @@
+0.6.1:
+
+This patch release fixes incorrect formatted printing of
+address offsets on 32-bit hosts, and likewise works around
+non-conformant definitions of type_t and/or st.st_ino.
+
+- ar: slbt_ar_merge_archives(), slbt_tmpfile(): guard against 32-bit time_t types.
+- ar: slbt_ar_merge_archives(): properly handle 32-bit pointers vs. 64-bit formats.
+- ar: slbt_ar_store_archive(): guard against 32-bit time_t types.
+- ar: slbt_ar_store_archive(): guard against 32-bit st_ino types.
+- slibtool.m4: slibtool_set_flavor(): define shared and static suffix variables.
+- slibtoolize: compatibility: install (copy or symlink) a no-op ar-lib as needed.
+- driver: heuristics: ignore errors if invoked with any of the -print commands.
+- driver: added the -print-shared-ext and -print-static-ext output commands.
+
0.6.0:
This minor release introduces the slibtoolize execution mode,
diff --git a/configure b/configure
index 839d8b3..100786d 100755
--- a/configure
+++ b/configure
@@ -1111,6 +1111,9 @@ for arg ; do
--mandir=*)
mb_mandir=${arg#*=}
;;
+ --docdir=*)
+ mb_docdir=${arg#*=}
+ ;;
--libexecdir=*)
mb_libexecdir=${arg#*=}
;;
diff --git a/m4/slibtool.m4 b/m4/slibtool.m4
index e2e6ad5..b1ed75b 100644
--- a/m4/slibtool.m4
+++ b/m4/slibtool.m4
@@ -242,7 +242,7 @@ slibtool_set_flavor()
_/*)
SLIBTOOL_SYSROOT="--sysroot=${slibtool_sysroot}"
- SLIBTOOL="${SLIBTOOL} \$(SLIBTOOL_SYSROOT)"
+ SLIBTOOL="${SLIBTOOL} ${SLIBTOOL_SYSROOT}"
;;
*)
@@ -536,7 +536,7 @@ _SLIBTOOL_ARG_WITH([sysroot],[absolute path to the target's sysroot],[slibtool_s
# --------------------
slibtool_set_flavor
LIBTOOL='$(SLIBTOOL)'
-SLIBTOOL="${SLIBTOOL} \$(SLIBTOOL_FLAGS)"
+SLIBTOOL="${SLIBTOOL} ${SLIBTOOL_FLAGS}"
AC_SUBST([LIBTOOL])
AC_SUBST([SLIBTOOL])
diff --git a/project/tagver.mk b/project/tagver.mk
index f22212f..cec273c 100644
--- a/project/tagver.mk
+++ b/project/tagver.mk
@@ -2,4 +2,4 @@ VER_NAMESPACE = SLBT
VER_MAJOR = 0
VER_MINOR = 6
-VER_PATCH = 0
+VER_PATCH = 1
diff --git a/src/arbits/slbt_archive_merge.c b/src/arbits/slbt_archive_merge.c
index 5f29235..5ace063 100644
--- a/src/arbits/slbt_archive_merge.c
+++ b/src/arbits/slbt_archive_merge.c
@@ -180,6 +180,8 @@ int slbt_ar_merge_archives(
int64_t osymrefs;
int64_t onamestrs;
int64_t omemfixup;
+ int64_t atint;
+ int64_t aroff;
char * base;
unsigned char * ubase;
@@ -359,7 +361,7 @@ int slbt_ar_merge_archives(
memcpy(arhdr,armap->ar_member_data,sizeof(*arhdr)+sarname);
nwritten = armap->ar_file_header.ar_time_date_stamp
- ? sprintf(arhdr->ar_time_date_stamp,PPRII64,time(0))
+ ? sprintf(arhdr->ar_time_date_stamp,PPRII64,(atint = time(0)))
: 0;
if (nwritten < 0)
@@ -401,7 +403,7 @@ int slbt_ar_merge_archives(
memcpy(arhdr,arnames->ar_member_data,sizeof(*arhdr));
nwritten = arnames->ar_file_header.ar_time_date_stamp
- ? sprintf(arhdr->ar_time_date_stamp,PPRII64,time(0))
+ ? sprintf(arhdr->ar_time_date_stamp,PPRII64,(atint = time(0)))
: 0;
if (nwritten < 0)
@@ -591,7 +593,7 @@ int slbt_ar_merge_archives(
if (meminfo->ar_file_header.ar_header_attr & AR_HEADER_ATTR_NAME_REF) {
nwritten = sprintf(
&base[omembers],"/"PPRII64,
- namestr - namebase);
+ (aroff = namestr - namebase));
if (nwritten < 0)
SLBT_SYSTEM_ERROR(dctx,0);
diff --git a/src/arbits/slbt_archive_store.c b/src/arbits/slbt_archive_store.c
index d09a3f0..e303cb7 100644
--- a/src/arbits/slbt_archive_store.c
+++ b/src/arbits/slbt_archive_store.c
@@ -41,6 +41,8 @@ int slbt_ar_store_archive(
struct stat st;
int fdat;
int fdtmp;
+ int64_t tint;
+ int64_t stino;
void * addr;
char * mark;
char * slash;
@@ -74,6 +76,7 @@ int slbt_ar_store_archive(
fdat = slbt_driver_fdcwd(dctx);
addr = buf;
+ tint = time(0);
mark = (slash = strrchr(buf,'/'))
? slash : buf;
@@ -89,6 +92,7 @@ int slbt_ar_store_archive(
dctx,0);
}
+ stino = st.st_ino;
buflen = sizeof(buf) - (mark - buf);
nbytes = snprintf(
mark,
@@ -99,8 +103,8 @@ int slbt_ar_store_archive(
".salt.%p"
".pid.%d"
".tmp",
- st.st_ino,
- time(0),addr,
+ stino,
+ tint,addr,
getpid());
if (nbytes >= buflen)
diff --git a/src/internal/slibtool_tmpfile_impl.c b/src/internal/slibtool_tmpfile_impl.c
index 52c7317..3ed7d3a 100644
--- a/src/internal/slibtool_tmpfile_impl.c
+++ b/src/internal/slibtool_tmpfile_impl.c
@@ -61,6 +61,7 @@ slbt_hidden int slbt_tmpfile(void)
{
int fd;
void * addr;
+ int64_t tint;
char tmplate[128];
/* try with __fs_tmpfile() */
@@ -73,6 +74,7 @@ slbt_hidden int slbt_tmpfile(void)
/* fallback to mk{o}stemp */
addr = tmplate;
+ tint = time(0);
memset(tmplate,0,sizeof(tmplate));
snprintf(tmplate,sizeof(tmplate),
"/tmp/"
@@ -81,8 +83,7 @@ slbt_hidden int slbt_tmpfile(void)
".salt.%p"
".pid.%d"
".XXXXXXXXXXXX",
- time(0),
- addr,
+ tint,addr,
getpid());
return slbt_mkostemp(tmplate);
diff --git a/src/logic/slbt_exec_stoolie.c b/src/logic/slbt_exec_stoolie.c
index 7701735..779146a 100644
--- a/src/logic/slbt_exec_stoolie.c
+++ b/src/logic/slbt_exec_stoolie.c
@@ -102,7 +102,7 @@ static int slbt_exec_stoolie_perform_actions(
return SLBT_BUFFER_ERROR(dctx);
if (slbt_snprintf(
- ltmain,sizeof(slibm4),"%s/%s",
+ ltmain,sizeof(ltmain),"%s/%s",
SLBT_PACKAGE_DATADIR,
"ltmain.sh") < 0)
return SLBT_BUFFER_ERROR(dctx);
diff --git a/src/skin/slbt_skin_stoolie.c b/src/skin/slbt_skin_stoolie.c
index e058fed..3a8cdb1 100644
--- a/src/skin/slbt_skin_stoolie.c
+++ b/src/skin/slbt_skin_stoolie.c
@@ -52,7 +52,7 @@ const slbt_hidden struct argv_option slbt_stoolie_options[] = {
"install [s]ltdl sources to %s; this option "
"provided is provided for the purpose of backward "
"compatibility, and is currently a no-op, thereby "
- "deferring -lltdl to the system install library."},
+ "deferring -lltdl to the system installed library."},
{0,0,0,0,0,0,0,0}
};