summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg Beaver <cellog@php.net>2008-09-14 06:47:08 +0000
committerGreg Beaver <cellog@php.net>2008-09-14 06:47:08 +0000
commit1799136925754f7033485d391d560decc92d9df4 (patch)
tree440c3ebace2f82f9308db72f65d1165f3a5a58bb
parentdd51a607e2a6097e114a4a08df15ae93ae213923 (diff)
downloadphp-git-1799136925754f7033485d391d560decc92d9df4.tar.gz
fix compile on IRIX with MIPSPro (Bug #46072)
-rw-r--r--NEWS1
-rw-r--r--ext/phar/pharzip.h33
-rw-r--r--ext/phar/tar.h9
3 files changed, 43 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index afc965cc8d..aacd91b0ca 100644
--- a/NEWS
+++ b/NEWS
@@ -5,6 +5,7 @@ PHP NEWS
- Changed error level E_ERROR into E_WARNING in Soap extension methods
parameter validation. (Felipe)
+- Fixed bug #46072 (Compile failure under IRIX 6.5.30 building util.c) (Greg)
- Fixed bug #46060 (Phar::addEmptyDir() breaks) (Greg)
- Fixed bug #46042 (memory leaks with reflection of mb_convert_encoding()).
(Ilia)
diff --git a/ext/phar/pharzip.h b/ext/phar/pharzip.h
index e74b5ba47f..c753cbc9a4 100644
--- a/ext/phar/pharzip.h
+++ b/ext/phar/pharzip.h
@@ -22,9 +22,15 @@
#ifdef PHP_WIN32
#pragma pack(1)
# define PHAR_ZIP_PACK
+#elif defined(__sgi)
+# define PHAR_ZIP_PACK
#else
# define PHAR_ZIP_PACK __attribute__((__packed__))
#endif
+
+#if defined(__sgi)
+# pragma pack 0
+#endif
typedef struct _phar_zip_file_header {
char signature[4]; /* local file header signature 4 bytes (0x04034b50) */
char zipversion[2]; /* version needed to extract 2 bytes */
@@ -41,6 +47,9 @@ typedef struct _phar_zip_file_header {
/* extra field (variable size) */
} PHAR_ZIP_PACK phar_zip_file_header;
+#if defined(__sgi)
+# pragma pack 0
+#endif
typedef struct _phar_zip_file_datadesc {
php_uint32 crc32; /* crc-32 4 bytes */
php_uint32 compsize; /* compressed size 4 bytes */
@@ -55,6 +64,9 @@ typedef struct _phar_zip_file_datadesc_zip64 {
php_uint32 uncompsize2;
} PHAR_ZIP_PACK phar_zip_data_desc_zip64;
+#if defined(__sgi)
+# pragma pack 0
+#endif
typedef struct _phar_zip_archive_extra_data_record {
char signature[4]; /* archive extra data signature 4 bytes (0x08064b50) */
php_uint32 len; /* extra field length 4 bytes */
@@ -135,11 +147,17 @@ typedef struct _phar_zip_archive_extra_data_record {
the CRC; i.e., it may be four bytes too small.]
*/
+#if defined(__sgi)
+# pragma pack 0
+#endif
typedef struct _phar_zip_extra_field_header {
char tag[2];
php_uint16 size;
} PHAR_ZIP_PACK phar_zip_extra_field_header;
+#if defined(__sgi)
+# pragma pack 0
+#endif
typedef struct _phar_zip_unix3 {
char tag[2]; /* 0x756e Short tag for this extra block type ("nu") */
php_uint16 size; /* TSize Short total data size for this block */
@@ -151,6 +169,9 @@ typedef struct _phar_zip_unix3 {
/* (var.) variable symbolic link filename */
} PHAR_ZIP_PACK phar_zip_unix3;
+#if defined(__sgi)
+# pragma pack 0
+#endif
typedef struct _phar_zip_central_dir_file {
char signature[4]; /* central file header signature 4 bytes (0x02014b50) */
char madeby[2]; /* version made by 2 bytes */
@@ -175,11 +196,17 @@ typedef struct _phar_zip_central_dir_file {
/* file comment (variable size) */
} PHAR_ZIP_PACK phar_zip_central_dir_file;
+#if defined(__sgi)
+# pragma pack 0
+#endif
typedef struct _phar_zip_dir_signature {
char signature[4]; /* header signature 4 bytes (0x05054b50) */
php_uint16 size; /* size of data 2 bytes */
} PHAR_ZIP_PACK phar_zip_dir_signature;
+#if defined(__sgi)
+# pragma pack 0
+#endif
typedef struct _phar_zip64_dir_end {
char signature[4]; /* zip64 end of central dir
signature 4 bytes (0x06064b50) */
@@ -206,6 +233,9 @@ typedef struct _phar_zip64_dir_end {
/* zip64 extensible data sector (variable size) */
} PHAR_ZIP_PACK phar_zip64_dir_end;
+#if defined(__sgi)
+# pragma pack 0
+#endif
typedef struct _phar_zip64_dir_locator {
char signature[4]; /* zip64 end of central dir locator
signature 4 bytes (0x07064b50) */
@@ -218,6 +248,9 @@ typedef struct _phar_zip64_dir_locator {
php_uint32 totaldisks; /* total number of disks 4 bytes */
} PHAR_ZIP_PACK phar_zip64_dir_locator;
+#if defined(__sgi)
+# pragma pack 0
+#endif
typedef struct _phar_zip_dir_end {
char signature[4]; /* end of central dir signature 4 bytes (0x06054b50) */
php_uint16 disknumber; /* number of this disk 2 bytes */
diff --git a/ext/phar/tar.h b/ext/phar/tar.h
index 6dc1fd3127..45dc6e5c0b 100644
--- a/ext/phar/tar.h
+++ b/ext/phar/tar.h
@@ -22,9 +22,15 @@
#ifdef PHP_WIN32
#pragma pack(1)
# define PHAR_TAR_PACK
+#elif defined(__sgi)
+# define PHAR_TAR_PACK
#else
# define PHAR_TAR_PACK __attribute__((__packed__))
#endif
+
+#if defined(__sgi)
+# pragma pack 0
+#endif
/**
* the format of the header block for a file, in the older UNIX-compatible
* TAR format
@@ -46,6 +52,9 @@ typedef struct _old_tar_header { /* {{{ */
} PHAR_TAR_PACK old_tar_header;
/* }}} */
+#if defined(__sgi)
+# pragma pack 0
+#endif
/**
* the new USTAR header format.
* Note that tar can determine that the USTAR format is being used by the