Opened 8 years ago
Closed 8 years ago
#52503 closed defect (wontfix)
hexchat 2.12.1 has issues on tiger - and fix
Reported by: | ken-cunningham-webuse | Owned by: | raimue (Rainer Müller) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.3.4 |
Keywords: | tiger | Cc: | |
Port: | hexchat |
Description (last modified by larryv (Lawrence Velázquez))
Tiger is not on the radar right after Sierra comes out, but at any rate, the new hexchat has a couple of easily-fixable issues to restore compatibility with Tiger.
During configure, autoconf identifies the system as accepting -fPIE, but in fact, 10.4 does not:
configure:19136: checking whether C compiler accepts -fPIE configure:19155: /opt/local/bin/gcc-apple-4.2 -c -pipe -Os -arch i386 -funsigned-char -fPIE -I/opt/local/include conftest.c >&5 configure:19155: $? = 0 configure:19164: result: yes libtool: link: /opt/local/bin/gcc-apple-4.2 -pipe -Os -arch i386 -funsigned-char -fPIE -fPIC -Wall -Wextra -Wstrict-prototypes -Wno-unused-parameter -Wno-sign-compare -Wno-pointer-sign -Wno-missing-field-initializers -Werror=format-security -Werror=init-self -Werror=declaration-after-statement -Werror=missing-include-dirs -Werror=implicit-function-declaration -Werror=pointer-arith -Wl,-headerpad_max_install_names -arch i386 -o make-te make-te.o -L/opt/local/lib /opt/local/lib/libintl.dylib ld: -pie can only be used when targeting Mac OS X 10.5 or later
the only solution I can come up with is to pull it out of the Makefiles manually with a reinplace.
Secondly, backend.m still has issues on Tiger even after ionic's nice fix for 10.5-10.8 is applied. I tried this and that to fix these issues, but even when it would compile cleanly, it wouldn't link:
AutoLoad failed for: /opt/local/lib/hexchat/plugins/sysinfo.so dlopen(/opt/local/lib/hexchat/plugins/sysinfo.so, 10): Symbol not found: _objc_enumerationMutation Referenced from: /opt/local/lib/hexchat/plugins/sysinfo.so Expected in: dynamic lookup
So I disabled it in config.
Finally, I added a note about how to download it, until such time as another solution is found to the 'old SSL' library issue on systems ≤ 10.6. This one is just in the notes -- I didn't wrap it up in a <10.6 block or get fancy with it.
Attachments (3)
Change History (9)
Changed 8 years ago by ken-cunningham-webuse
Attachment: | hexchat2.12.1-tiger-fix.diff added |
---|
Changed 8 years ago by ken-cunningham-webuse
Attachment: | hexchat-pie-error.main.log.gz added |
---|
Changed 8 years ago by ken-cunningham-webuse
Attachment: | hexchat.backend-m.uptime.error.main2.log.gz added |
---|
comment:1 Changed 8 years ago by ken-cunningham-webuse
comment:2 Changed 8 years ago by larryv (Lawrence Velázquez)
Description: | modified (diff) |
---|---|
Keywords: | tiger added |
Owner: | changed from macports-tickets@… to raimue@… |
Port: | hexchat added |
Replying to ken.cunningham.webuse@…:
During configure, autoconf identifies the system as accepting -fPIE, but in fact, 10.4 does not:
configure:19136: checking whether C compiler accepts -fPIE configure:19155: /opt/local/bin/gcc-apple-4.2 -c -pipe -Os -arch i386 -funsigned-char -fPIE -I/opt/local/include conftest.c >&5 configure:19155: $? = 0 configure:19164: result: yes libtool: link: /opt/local/bin/gcc-apple-4.2 -pipe -Os -arch i386 -funsigned-char -fPIE -fPIC -Wall -Wextra -Wstrict-prototypes -Wno-unused-parameter -Wno-sign-compare -Wno-pointer-sign -Wno-missing-field-initializers -Werror=format-security -Werror=init-self -Werror=declaration-after-statement -Werror=missing-include-dirs -Werror=implicit-function-declaration -Werror=pointer-arith -Wl,-headerpad_max_install_names -arch i386 -o make-te make-te.o -L/opt/local/lib /opt/local/lib/libintl.dylib ld: -pie can only be used when targeting Mac OS X 10.5 or laterthe only solution I can come up with is to pull it out of the Makefiles manually with a reinplace.
Well, it’s checking whether the compiler accepts -fPIE, which it does. The problem is the linker. I think a better fix would be to have the configure script check the linker as well.
comment:3 Changed 8 years ago by ken-cunningham-webuse
found some more -- linker does test for PIE, I see, and finds failure
configure:19216: checking whether the linker accepts -pie configure:19235: /opt/local/bin/gcc-apple-4.2 -o conftest -pipe -Os -arch i386 -funsigned-char -fPIE -fPIC -Wall -Wextra -Wstrict-prototypes -Wno-unused-parameter -Wno-sign-compare -Wno-pointer-sign -Wno-missing-field-initializers -Werror=format-security -Werror=init-self -Werror=declaration-after-statement -Werror=missing-include-dirs -Werror=implicit-function-declaration -Werror=pointer-arith -I/opt/local/include -L/opt/local/lib -Wl,-headerpad_max_install_names -arch i386 -pie conftest.c >&5 conftest.c:44: warning: function declaration isn't a prototype ld: -pie can only be used when targeting Mac OS X 10.5 or later collect2: ld returned 1 exit status
and that makes it into the summary
ax_cv_check_ldflags___Wl__z_now=no ax_cv_check_ldflags___Wl__z_relro=no ax_cv_check_ldflags___pie=no
so the compiler accepts -fPIE, but the linker does not
CFLAGS='-pipe -Os -arch i386 -funsigned-char -fPIE -fPIC -Wall -Wextra -Wstrict-prototypes -Wno-unused-parameter -Wno-sign-compare -Wno-pointer-sign -Wno-missing-field-initializers -Werror=format-security -Werror=init-self -Werror=declaration-after-statement -Werror=missing-include-dirs -Werror=implicit-function-declaration -Werror=pointer-arith' LDFLAGS='-L/opt/local/lib -Wl,-headerpad_max_install_names -arch i386'
and in the end, the link line looks like it's made up of both CFLAGS (with-fPIE) and LDFLAGS, and errors out...
:info:build /bin/sh ../../libtool --tag=CC --mode=link /opt/local/bin/gcc-apple-4.2 -pipe -Os -arch i386 -funsigned-char -fPIE -fPIC -Wall -Wextra -Wstrict-prototypes -Wno-unused-parameter -Wno-sign-compare -Wno-pointer-sign -Wno-missing-field-initializers -Werror=format-security -Werror=init-self -Werror=declaration-after-statement -Werror=missing-include-dirs -Werror=implicit-function-declaration -Werror=pointer-arith -L/opt/local/lib -Wl,-headerpad_max_install_names -arch i386 -o make-te make-te.o -lintl :info:build libtool: link: /opt/local/bin/gcc-apple-4.2 -pipe -Os -arch i386 -funsigned-char -fPIE -fPIC -Wall -Wextra -Wstrict-prototypes -Wno-unused-parameter -Wno-sign-compare -Wno-pointer-sign -Wno-missing-field-initializers -Werror=format-security -Werror=init-self -Werror=declaration-after-statement -Werror=missing-include-dirs -Werror=implicit-function-declaration -Werror=pointer-arith -Wl,-headerpad_max_install_names -arch i386 -o make-te make-te.o -L/opt/local/lib /opt/local/lib/libintl.dylib :info:build ld: -pie can only be used when targeting Mac OS X 10.5 or later :info:build collect2: ld returned 1 exit status
comment:4 Changed 8 years ago by ken-cunningham-webuse
the issue might be in this command from src/common/Makefile.in
LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@
that include the CFLAGS and AM_CFLAGS in with the link command... it ultimately is rather easier to strip out the -fPIE than repair this, though...
comment:5 Changed 8 years ago by ken-cunningham-webuse
At any rate, I don't see that I'm going to improve this patch any further than this --it works great, and it's not worth more effort. So this patch can suffice for those on Tiger who go looking for it to work, and we can close this ticket off as a 'won't fix'.
comment:6 Changed 8 years ago by raimue (Rainer Müller)
Resolution: | → wontfix |
---|---|
Status: | new → closed |
Ah - forgot to add the Port= hexchat and maintainer=raimue@… fields before I clicked. I'm sorry, and can't fix it now.
[update] The download issue applies to <= 10.7, at least.