1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-10-18 19:49:40 +00:00

print/tex-luatex: Avoid mixing libc++ and libstdc++, and don't use -fcommon

This port was not respecting the CC and CXX variables, thus it could
pick up gcc and g++ instead, and that would cause mixups between
libstdc++ (which is preferred by gcc) and libc++ (which is in base),
ultimately leading to link errors.

Also, the port uses a very old version of tex so it suffers from a few
-fno-common issues, mostly variables that have been declared without an
'extern' specifier. Add a few patches to fix these.

Appproved by:	maintainer timeout
PR:		234221
MFH:		2021Q2
This commit is contained in:
Dimitry Andric 2021-05-06 23:29:24 +02:00
parent d2767ba108
commit b8aceeb601
6 changed files with 58 additions and 5 deletions

View File

@ -1,6 +1,6 @@
PORTNAME= luatex
PORTVERSION= 0.80.0
PORTREVISION= 23
PORTREVISION= 24
CATEGORIES= print
MASTER_SITES= ftp://tug.org/historic/systems/texlive/2015/
PKGNAMEPREFIX= tex-
@ -72,14 +72,12 @@ CONFIGURE_ARGS+=--with-system-$L \
--with-$L-include=${LOCALBASE}/include \
--with-$L-libdir=${LOCALBASE}/lib
.endfor
CONFIGURE_ARGS+=CC="${CC}" \
CXX="${CXX}"
CPPFLAGS+= -I${LOCALBASE}/include
MAKE_JOBS_UNSAFE= yes
TEX_FORMATS= luatex
# Fix build on recent current -- our tex is so outdated,
# that it's unlikely that any upstream patches apply.
CFLAGS+= -fcommon
# buildenv and dumpenv in Makefile uses hard-coded TEXMFCNF.
post-extract:
cd ${WRKSRC}/.. && \

View File

@ -0,0 +1,11 @@
--- luatexdir/font/luatexfont.h.orig 2015-03-20 07:59:58 UTC
+++ luatexdir/font/luatexfont.h
@@ -149,8 +149,6 @@ void replace_packet_fonts(internal_font_number f, int
int *new_fontid, int count);
int *packet_local_fonts(internal_font_number f, int *num);
-int packet_cur_s; /* current |do_vf_packet()| recursion level */
-int packet_stack_ptr; /* pointer into |packet_stack| */
vf_struct *new_vfstruct(void);
/* writecff.c */

View File

@ -0,0 +1,11 @@
--- luatexdir/image/writeimg.h.orig 2015-03-20 07:59:58 UTC
+++ luatexdir/image/writeimg.h
@@ -27,7 +27,7 @@
# include "pdf/pdfpage.h"
typedef image_dict *idict_entry;
-idict_entry *idict_array;
+extern idict_entry *idict_array;
void new_img_pdfstream_struct(image_dict *);
image *new_image(void);

View File

@ -0,0 +1,11 @@
--- luatexdir/image/writeimg.w.orig 2015-03-20 07:59:58 UTC
+++ luatexdir/image/writeimg.w
@@ -125,6 +125,8 @@
#define HEADER_PDF "%PDF-1."
#define MAX_HEADER (sizeof(HEADER_PNG)-1)
+idict_entry *idict_array;
+
static void check_type_by_header(image_dict * idict)
{
int i;

View File

@ -0,0 +1,11 @@
--- luatexdir/pdf/pdftables.h.orig 2015-03-20 07:59:58 UTC
+++ luatexdir/pdf/pdftables.h
@@ -21,7 +21,7 @@
#ifndef PDFTABLES_H
# define PDFTABLES_H
-const char *pdf_obj_typenames[PDF_OBJ_TYPE_MAX + 1];
+extern const char *pdf_obj_typenames[PDF_OBJ_TYPE_MAX + 1];
typedef enum {
union_type_int,

View File

@ -0,0 +1,11 @@
--- luatexdir/tex/textoken.w.orig 2015-03-28 00:34:27 UTC
+++ luatexdir/tex/textoken.w
@@ -75,7 +75,7 @@ maximum memory usage. When code between the delimiters
report these statistics when |tracing_stats| is sufficiently large.
@c
-int var_used, dyn_used; /* how much memory is in use */
+int dyn_used; /* how much memory is in use */
halfword avail; /* head of the list of available one-word nodes */
unsigned fix_mem_end; /* the last one-word node used in |mem| */