Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 542620 - app-text/texlive-core-2014-r2 on ABI=x32 - Error: pointer size mismatch in cross-build
Summary: app-text/texlive-core-2014-r2 on ABI=x32 - Error: pointer size mismatch in cr...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Alexis Ballier
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: x32
  Show dependency tree
 
Reported: 2015-03-09 01:37 UTC by Bertrand Jacquin
Modified: 2015-07-30 15:53 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
build.log (build.log,115.30 KB, text/x-log)
2015-03-09 01:39 UTC, Bertrand Jacquin
Details
emerge --info (info.log,16.61 KB, text/x-log)
2015-03-09 01:39 UTC, Bertrand Jacquin
Details
make luajittex controlled by a useflag (texlive-lua-ebuild.patch,779 bytes, patch)
2015-07-22 07:06 UTC, Josh Parsons
Details | Diff
modify texlive-module.eclass to not use non-existent engines (texlive-lua-eclass.patch,1.30 KB, patch)
2015-07-22 09:04 UTC, Josh Parsons
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Bertrand Jacquin 2015-03-09 01:37:59 UTC
app-text/texlive-core-2014-r2 fail to build on ABI=x32 with the following error:

native/buildvm -m bcdef -o lj_bcdef.h lib_base.c lib_math.c lib_bit.c lib_string.c lib_table.c lib_io.c lib_os.c lib_package.c lib_debug.c lib_jit.c lib_ffi.c
Error: pointer size mismatch in cross-build.
Try: make HOST_CC="gcc -m32" CROSS=...

Makefile:1649: recipe for target 'lj_bcdef.h' failed
make[5]: *** [lj_bcdef.h] Error 1
make[5]: Leaving directory '/var/tmp/portage/app-text/texlive-core-2014-r2/work/texlive-core-2014_build/libs/luajit'
Makefile:1052: recipe for target 'all-recursive' failed
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory '/var/tmp/portage/app-text/texlive-core-2014-r2/work/texlive-core-2014_build/libs/luajit'
Makefile:698: recipe for target 'all' failed
make[3]: *** [all] Error 2
make[3]: Leaving directory '/var/tmp/portage/app-text/texlive-core-2014-r2/work/texlive-core-2014_build/libs/luajit'
Makefile:875: recipe for target 'recurse' failed
make[2]: *** [recurse] Error 1
make[2]: Leaving directory '/var/tmp/portage/app-text/texlive-core-2014-r2/work/texlive-core-2014_build/libs'
Makefile:455: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/var/tmp/portage/app-text/texlive-core-2014-r2/work/texlive-core-2014_build/libs'
Makefile:544: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1
 * ERROR: app-text/texlive-core-2014-r2::gentoo failed (compile phase):
 *   emake failed

Full log and emerge --info attached

Reproducible: Always
Comment 1 Bertrand Jacquin 2015-03-09 01:39:06 UTC
Created attachment 398450 [details]
build.log
Comment 2 Bertrand Jacquin 2015-03-09 01:39:18 UTC
Created attachment 398452 [details]
emerge --info
Comment 3 Josh Parsons 2015-07-22 06:31:37 UTC
I also have this problem. The embedded luajit assumes that pointers on amd64 are 64bit.

Here is the debian bug:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=752041

Solution is to pass --disable-luajittex to configure on x32 builds.
Comment 4 Josh Parsons 2015-07-22 07:06:45 UTC
Created attachment 407366 [details, diff]
make luajittex controlled by a useflag

This patch adds a luajittex useflag to texlive-core, which controls whether luajittex is built. Should be usemasked on x32 profiles.
Comment 5 Josh Parsons 2015-07-22 07:40:32 UTC
texlive-module.class also needs changes so that other texlive modules don't try to use luajittex
Comment 6 Alexis Ballier gentoo-dev 2015-07-22 08:55:43 UTC
disabling luajittex wont work since tl-basic & tl-latex both hard depend on it...
Comment 7 Josh Parsons 2015-07-22 09:04:57 UTC
Created attachment 407372 [details, diff]
modify texlive-module.eclass to not use non-existent engines

With this in conjunction with my previous patch, I can now build a complete texlive on x32.
Comment 8 Josh Parsons 2015-07-22 09:10:09 UTC
(In reply to Alexis Ballier from comment #6)
> disabling luajittex wont work since tl-basic & tl-latex both hard depend on
> it...

Thanks, I noticed that shortly after posting the patch... my patch to texlive-module.eclass fixes that.
Comment 9 Alexis Ballier gentoo-dev 2015-07-22 12:17:48 UTC
(In reply to Josh Parsons from comment #7)
> Created attachment 407372 [details, diff] [details, diff]
> modify texlive-module.eclass to not use non-existent engines

This isnt good since this introduces some sort of automagic:
Imagine I install tl-core with USE=-luajittex, then how can I know what I need to rebuild in order to get luajittex working?


Let's see if we can get something good, scalable and maintainable:
What I was thinking is adding a new 'input' variable in texlive-module.eclass, say 'TEXLIVE_MODULE_OPTIONAL_ENGINE', which would add these to IUSE (default enabled), add the usedep on tl-core and disable said engines when the useflag is disabled. A bit like what you're proposing, except controlled by an useflag instead of guessing what's in PATH or not.
Comment 10 Alexis Ballier gentoo-dev 2015-07-30 15:53:08 UTC
(In reply to Alexis Ballier from comment #9)
> (In reply to Josh Parsons from comment #7)
> > Created attachment 407372 [details, diff] [details, diff] [details, diff]
> > modify texlive-module.eclass to not use non-existent engines
> 
> This isnt good since this introduces some sort of automagic:
> Imagine I install tl-core with USE=-luajittex, then how can I know what I
> need to rebuild in order to get luajittex working?
> 
> 
> Let's see if we can get something good, scalable and maintainable:
> What I was thinking is adding a new 'input' variable in
> texlive-module.eclass, say 'TEXLIVE_MODULE_OPTIONAL_ENGINE', which would add
> these to IUSE (default enabled), add the usedep on tl-core and disable said
> engines when the useflag is disabled. A bit like what you're proposing,
> except controlled by an useflag instead of guessing what's in PATH or not.

did that; it was simpler than what i thought; now there's luajittex useflag that can be masked on relevant profiles (please fill a bug for the x32 team for that)