php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #36038 literal C string section (__TEXT,__cstring) does not end with a '\0'
Submitted: 2006-01-16 22:21 UTC Modified: 2006-01-17 00:04 UTC
From: marius at physics dot aamu dot edu Assigned:
Status: Closed Package: Compile Failure
PHP Version: 5.1.2 OS: Mac OS X 10.2.8
Private report: No CVE-ID: None
 [2006-01-16 22:21 UTC] marius at physics dot aamu dot edu
Description:
------------
I'm trying to build php 5.1.2 under Mac OS X 10.2.8 (I already have built more capable versions for Mac OS X 10.3.9 w/o any problems and 10.4.4 which needed to be built with gcc 3.3 instead of gcc 4.0). Note: php 5.1.1 built just fine under Mac OS X 10.2.8 with nearly the same configuration (I updated few dependancies: curl 7.15.0 -> 7.15.1, Berkeley db 4.3.28 -> 4.4.16, libxml2 2.6.22 -> 2.6.23, mysql 5.0.16 -> 5.0.18).

The configure command:

./configure --enable-force-cgi-redirect --with-apxs --with-openssl=/usr/local/ssl --with-zlib=/usr/local --with-bz2=/usr/local --with-jpeg-dir=/usr/local --with-tiff-dir=/usr/local --with-curl=/usr/local --with-db4=/usr/local --enable-exif --with-gd=/usr/local --with-gettext=/usr/local --with-mysql=/usr/local/mysql --with-readline=/usr/local --with-iconv-dir=/usr/local --with-pkg-config=/usr/local --with-png-dir=/usr/local --with-xpm-dir=/usr/X11R6/lib --with-freetype-dir=/usr/local


Actual result:
--------------
It dies with:

gcc -dynamic -twolevel_namespace -bundle -bundle_loader /usr/sbin/httpd -I/usr/local/include -g -O2   -L/usr/local/lib -L/usr/local/ssl/lib -L/usr/X11R6/lib -L/usr/local/lib/mysql ext/libxml/libxml.o ext/openssl/openssl.o ext/openssl/xp_ssl.o ext/pcre/pcrelib/pcre_chartables.o ext/pcre/pcrelib/pcre_compile.o ext/pcre/pcrelib/pcre_config.o ext/pcre/pcrelib/pcre_dfa_exec.o ext/pcre/pcrelib/pcre_exec.o ext/pcre/pcrelib/pcre_fullinfo.o ext/pcre/pcrelib/pcre_get.o ext/pcre/pcrelib/pcre_globals.o ext/pcre/pcrelib/pcre_info.o ext/pcre/pcrelib/pcre_maketables.o ext/pcre/pcrelib/pcre_ord2utf8.o ext/pcre/pcrelib/pcre_printint.o ext/pcre/pcrelib/pcre_refcount.o ext/pcre/pcrelib/pcre_study.o ext/pcre/pcrelib/pcre_tables.o ext/pcre/pcrelib/pcre_try_flipped.o ext/pcre/pcrelib/pcre_ucp_findchar.o ext/pcre/pcrelib/pcre_valid_utf8.o ext/pcre/pcrelib/pcre_version.o ext/pcre/pcrelib/pcre_xclass.o ext/pcre/php_pcre.o ext/zlib/zlib.o ext/zlib/zlib_fopen_wrapper.o ext/zlib/zlib_filter.o ext/bz2/bz2.o ext/bz2/bz2_filter.o ext/ctype/ctype.o ext/curl/interface.o ext/curl/multi.o ext/curl/streams.o ext/date/php_date.o ext/date/lib/astro.o ext/date/lib/dow.o ext/date/lib/parse_date.o ext/date/lib/parse_tz.o ext/date/lib/timelib.o ext/date/lib/tm2unixtime.o ext/date/lib/unixtime2tm.o ext/dba/dba.o ext/dba/dba_cdb.o ext/dba/dba_dbm.o ext/dba/dba_gdbm.o ext/dba/dba_ndbm.o ext/dba/dba_db1.o ext/dba/dba_db2.o ext/dba/dba_db3.o ext/dba/dba_db4.o ext/dba/dba_flatfile.o ext/dba/dba_inifile.o ext/dba/dba_qdbm.o ext/dba/libcdb/cdb.o ext/dba/libcdb/cdb_make.o ext/dba/libcdb/uint32.o ext/dba/libflatfile/flatfile.o ext/dba/libinifile/inifile.o ext/dom/php_dom.o ext/dom/attr.o ext/dom/document.o ext/dom/domerrorhandler.o ext/dom/domstringlist.o ext/dom/domexception.o ext/dom/namelist.o ext/dom/processinginstruction.o ext/dom/cdatasection.o ext/dom/documentfragment.o ext/dom/domimplementation.o ext/dom/element.o ext/dom/node.o ext/dom/string_extend.o ext/dom/characterdata.o ext/dom/documenttype.o ext/dom/domimplementationlist.o ext/dom/entity.o ext/dom/nodelist.o ext/dom/text.o ext/dom/comment.o ext/dom/domconfiguration.o ext/dom/domimplementationsource.o ext/dom/entityreference.o ext/dom/notation.o ext/dom/xpath.o ext/dom/dom_iterators.o ext/dom/typeinfo.o ext/dom/domerror.o ext/dom/domlocator.o ext/dom/namednodemap.o ext/dom/userdatahandler.o ext/exif/exif.o ext/gd/gd.o ext/gd/gdttf.o ext/gd/gdcache.o ext/gettext/gettext.o ext/hash/hash.o ext/hash/hash_md.o ext/hash/hash_sha.o ext/hash/hash_ripemd.o ext/hash/hash_haval.o ext/hash/hash_tiger.o ext/hash/hash_gost.o ext/hash/hash_snefru.o ext/hash/hash_whirlpool.o ext/hash/hash_adler32.o ext/hash/hash_crc32.o ext/iconv/iconv.o ext/mysql/php_mysql.o ext/pdo/pdo.o ext/pdo/pdo_dbh.o ext/pdo/pdo_stmt.o ext/pdo/pdo_sql_parser.o ext/pdo/pdo_sqlstate.o ext/pdo_sqlite/pdo_sqlite.o ext/pdo_sqlite/sqlite_driver.o ext/pdo_sqlite/sqlite_statement.o ext/pdo_sqlite/sqlite/src/attach.o ext/pdo_sqlite/sqlite/src/auth.o ext/pdo_sqlite/sqlite/src/btree.o ext/pdo_sqlite/sqlite/src/build.o ext/pdo_sqlite/sqlite/src/callback.o ext/pdo_sqlite/sqlite/src/date.o ext/pdo_sqlite/sqlite/src/delete.o ext/pdo_sqlite/sqlite/src/expr.o ext/pdo_sqlite/sqlite/src/func.o ext/pdo_sqlite/sqlite/src/hash.o ext/pdo_sqlite/sqlite/src/insert.o ext/pdo_sqlite/sqlite/src/legacy.o ext/pdo_sqlite/sqlite/src/main.o ext/pdo_sqlite/sqlite/src/os_mac.o ext/pdo_sqlite/sqlite/src/os_unix.o ext/pdo_sqlite/sqlite/src/os_win.o ext/pdo_sqlite/sqlite/src/pager.o ext/pdo_sqlite/sqlite/src/pragma.o ext/pdo_sqlite/sqlite/src/prepare.o ext/pdo_sqlite/sqlite/src/printf.o ext/pdo_sqlite/sqlite/src/random.o ext/pdo_sqlite/sqlite/src/select.o ext/pdo_sqlite/sqlite/src/table.o ext/pdo_sqlite/sqlite/src/tokenize.o ext/pdo_sqlite/sqlite/src/analyze.o ext/pdo_sqlite/sqlite/src/trigger.o ext/pdo_sqlite/sqlite/src/update.o ext/pdo_sqlite/sqlite/src/utf.o ext/pdo_sqlite/sqlite/src/util.o ext/pdo_sqlite/sqlite/src/vacuum.o ext/pdo_sqlite/sqlite/src/vdbeapi.o ext/pdo_sqlite/sqlite/src/vdbeaux.o ext/pdo_sqlite/sqlite/src/vdbe.o ext/pdo_sqlite/sqlite/src/vdbemem.o ext/pdo_sqlite/sqlite/src/where.o ext/pdo_sqlite/sqlite/src/parse.o ext/pdo_sqlite/sqlite/src/opcodes.o ext/pdo_sqlite/sqlite/src/alter.o ext/pdo_sqlite/sqlite/src/vdbefifo.o ext/pdo_sqlite/sqlite/src/experimental.o ext/posix/posix.o ext/reflection/php_reflection.o ext/session/session.o ext/session/mod_files.o ext/session/mod_mm.o ext/session/mod_user.o ext/simplexml/simplexml.o ext/spl/php_spl.o ext/spl/spl_functions.o ext/spl/spl_engine.o ext/spl/spl_iterators.o ext/spl/spl_array.o ext/spl/spl_directory.o ext/spl/spl_sxe.o ext/spl/spl_exceptions.o ext/spl/spl_observer.o ext/sqlite/sqlite.o ext/sqlite/sess_sqlite.o ext/sqlite/pdo_sqlite2.o ext/sqlite/libsqlite/src/opcodes.o ext/sqlite/libsqlite/src/parse.o ext/sqlite/libsqlite/src/encode.o ext/sqlite/libsqlite/src/auth.o ext/sqlite/libsqlite/src/btree.o ext/sqlite/libsqlite/src/build.o ext/sqlite/libsqlite/src/delete.o ext/sqlite/libsqlite/src/expr.o ext/sqlite/libsqlite/src/func.o ext/sqlite/libsqlite/src/hash.o ext/sqlite/libsqlite/src/insert.o ext/sqlite/libsqlite/src/main.o ext/sqlite/libsqlite/src/os.o ext/sqlite/libsqlite/src/pager.o ext/sqlite/libsqlite/src/printf.o ext/sqlite/libsqlite/src/random.o ext/sqlite/libsqlite/src/select.o ext/sqlite/libsqlite/src/table.o ext/sqlite/libsqlite/src/tokenize.o ext/sqlite/libsqlite/src/update.o ext/sqlite/libsqlite/src/util.o ext/sqlite/libsqlite/src/vdbe.o ext/sqlite/libsqlite/src/attach.o ext/sqlite/libsqlite/src/btree_rb.o ext/sqlite/libsqlite/src/pragma.o ext/sqlite/libsqlite/src/vacuum.o ext/sqlite/libsqlite/src/copy.o ext/sqlite/libsqlite/src/vdbeaux.o ext/sqlite/libsqlite/src/date.o ext/sqlite/libsqlite/src/where.o ext/sqlite/libsqlite/src/trigger.o regex/regcomp.o regex/regexec.o regex/regerror.o regex/regfree.o ext/standard/array.o ext/standard/base64.o ext/standard/basic_functions.o ext/standard/browscap.o ext/standard/crc32.o ext/standard/crypt.o ext/standard/cyr_convert.o ext/standard/datetime.o ext/standard/dir.o ext/standard/dl.o ext/standard/dns.o ext/standard/exec.o ext/standard/file.o ext/standard/filestat.o ext/standard/flock_compat.o ext/standard/formatted_print.o ext/standard/fsock.o ext/standard/head.o ext/standard/html.o ext/standard/image.o ext/standard/info.o ext/standard/iptc.o ext/standard/lcg.o ext/standard/link.o ext/standard/mail.o ext/standard/math.o ext/standard/md5.o ext/standard/metaphone.o ext/standard/microtime.o ext/standard/pack.o ext/standard/pageinfo.o ext/standard/quot_print.o ext/standard/rand.o ext/standard/reg.o ext/standard/soundex.o ext/standard/string.o ext/standard/scanf.o ext/standard/syslog.o ext/standard/type.o ext/standard/uniqid.o ext/standard/url.o ext/standard/url_scanner.o ext/standard/var.o ext/standard/versioning.o ext/standard/assert.o ext/standard/strnatcmp.o ext/standard/levenshtein.o ext/standard/incomplete_class.o ext/standard/url_scanner_ex.o ext/standard/ftp_fopen_wrapper.o ext/standard/http_fopen_wrapper.o ext/standard/php_fopen_wrapper.o ext/standard/credits.o ext/standard/css.o ext/standard/var_unserializer.o ext/standard/ftok.o ext/standard/sha1.o ext/standard/user_filters.o ext/standard/uuencode.o ext/standard/filters.o ext/standard/proc_open.o ext/standard/streamsfuncs.o ext/standard/http.o ext/tokenizer/tokenizer.o ext/xml/xml.o ext/xml/compat.o ext/xmlreader/php_xmlreader.o ext/xmlwriter/php_xmlwriter.o TSRM/TSRM.o TSRM/tsrm_strtok_r.o TSRM/tsrm_virtual_cwd.o main/main.o main/snprintf.o main/spprintf.o main/php_sprintf.o main/safe_mode.o main/fopen_wrappers.o main/alloca.o main/php_scandir.o main/php_ini.o main/SAPI.o main/rfc1867.o main/php_content_types.o main/strlcpy.o main/strlcat.o main/mergesort.o main/reentrancy.o main/php_variables.o main/php_ticks.o main/network.o main/php_open_temporary_file.o main/php_logos.o main/output.o main/streams/streams.o main/streams/cast.o main/streams/memory.o main/streams/filter.o main/streams/plain_wrapper.o main/streams/userspace.o main/streams/transports.o main/streams/xp_socket.o main/streams/mmap.o Zend/zend_language_parser.o Zend/zend_language_scanner.o Zend/zend_ini_parser.o Zend/zend_ini_scanner.o Zend/zend_alloc.o Zend/zend_compile.o Zend/zend_constants.o Zend/zend_dynamic_array.o Zend/zend_execute_API.o Zend/zend_highlight.o Zend/zend_llist.o Zend/zend_opcode.o Zend/zend_operators.o Zend/zend_ptr_stack.o Zend/zend_stack.o Zend/zend_variables.o Zend/zend.o Zend/zend_API.o Zend/zend_extensions.o Zend/zend_hash.o Zend/zend_list.o Zend/zend_indent.o Zend/zend_builtin_functions.o Zend/zend_sprintf.o Zend/zend_ini.o Zend/zend_qsort.o Zend/zend_multibyte.o Zend/zend_ts_hash.o Zend/zend_stream.o Zend/zend_iterators.o Zend/zend_interfaces.o Zend/zend_exceptions.o Zend/zend_strtod.o Zend/zend_objects.o Zend/zend_object_handlers.o Zend/zend_objects_API.o Zend/zend_mm.o Zend/zend_default_classes.o Zend/zend_execute.o sapi/apache/sapi_apache.o sapi/apache/mod_php5.o sapi/apache/php_apache.o main/internal_functions.o  -lhistory -lreadline -lncurses -lmysqlclient -liconv -lintl -lgd -lfreetype -lX11 -lXpm -lpng -lz -ljpeg -ldb-4.3 -ldb-4.3 -lcurl -lbz2 -lz -lssl -lcrypto -lm -ldl -lxml2 -lz -liconv -lm -lcurl -lssl -lcrypto -ldl -lz -lxml2 -lz -liconv -lm -lxml2 -lz -liconv -lm -lxml2 -lz -liconv -lm -lxml2 -lz -liconv -lm -lxml2 -lz -liconv -lm  -o libs/libphp5.bundle && cp libs/libphp5.bundle libs/libphp5.so
ld: warning multiple definitions of symbol _locale_charset
/usr/local/lib/libiconv.dylib(localcharset.o) definition of _locale_charset
/usr/local/lib/libintl.dylib(localcharset.o) definition of _locale_charset
ld: ext/hash/hash_md.o literal C string section (__TEXT,__cstring) does not end with a '\0'
ld: ext/hash/hash_sha.o literal C string section (__TEXT,__cstring) does not end with a '\0'
ld: ext/hash/hash_ripemd.o literal C string section (__TEXT,__cstring) does not end with a '\0'
ld: ext/hash/hash_haval.o literal C string section (__TEXT,__cstring) does not end with a '\0'
ld: ext/hash/hash_tiger.o literal C string section (__TEXT,__cstring) does not end with a '\0'
ld: ext/hash/hash_gost.o literal C string section (__TEXT,__cstring) does not end with a '\0'
ld: ext/hash/hash_snefru.o literal C string section (__TEXT,__cstring) does not end with a '\0'
ld: ext/hash/hash_whirlpool.o literal C string section (__TEXT,__cstring) does not end with a '\0'
ld: ext/hash/hash_adler32.o literal C string section (__TEXT,__cstring) does not end with a '\0'
ld: ext/hash/hash_crc32.o literal C string section (__TEXT,__cstring) does not end with a '\0'
ld: main/internal_functions.o literal C string section (__TEXT,__cstring) does not end with a '\0'
make: *** [libs/libphp5.bundle] Error 1

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2006-01-16 23:06 UTC] tony2001@php.net
Does this patch fix the issue?
(you may just change 16 to 17 there manually and try to recompile it).

Index: ext/hash/php_hash.h
===================================================================
RCS file: /repository/php-src/ext/hash/php_hash.h,v
retrieving revision 1.13.2.6
diff -u -p -d -r1.13.2.6 php_hash.h
--- ext/hash/php_hash.h 1 Jan 2006 12:50:07 -0000       1.13.2.6
+++ ext/hash/php_hash.h 16 Jan 2006 22:05:44 -0000
@@ -122,7 +122,7 @@ PHP_HASH_API void php_hash_register_algo

 static inline void php_hash_bin2hex(char *out, const unsigned char *in, int in_len)
 {
-       static const char hexits[16] = "0123456789abcdef";
+       static const char hexits[17] = "0123456789abcdef";
        int i;

        for(i = 0; i < in_len; i++) {
 [2006-01-16 23:09 UTC] marius at physics dot aamu dot edu
"fixed" by adding --disable-hash to the configure arguments. This does not solve the fundamental compile failure, but only  works around the problem, leaving an off-flavor version of php 5.1.x.
 [2006-01-16 23:16 UTC] tony2001@php.net
Please try proposed patch (that fixes problems with your ld that doesn't comply with ANSI standard).
 [2006-01-16 23:46 UTC] marius at physics dot aamu dot edu
The patch worked. Thanks.
 [2006-01-17 00:04 UTC] tony2001@php.net
This bug has been fixed in CVS.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.


 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Nov 21 08:01:29 2024 UTC