pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Imake on Solaris 11.2/sparc


I just started using pkgsrc on Solaris 11.2/sparc. I have problems compiling packages that use Imake, e.g. xdu or xv.

Linking fails with

ld: fatal: /usr/lib/ld/map.noexdata: 29: error: SPARC Procedure Linkage Table (PLT) must remain executable

The flag "-Wl,-M,/usr/lib/ld/map.noexdata" (which should not be used in Sparc, only i86) comes from

#ifndef Mapfile_NoExData
# if defined(SparcArchitecture)
/* SPARC archictecture requires PLT section in .data be executable, so
   we can only make .bss, not all of .data no-exec on SPARC */
#   define Mapfile_NoExData /**/
# else
#  if OSMinorVersion >= 10
#   define Mapfile_NoExData $(MAPFILEFLAG)/usr/lib/ld/map.noexdata
#  else
#   define Mapfile_NoExData /**/
#  endif
# endif

The definition for SparcArchitecture seems okay, it boils down to the presence of defines "sun" and "sparc", which my GCC emits.

I noticed patch-ag in x11/xorg-cf-files:

-#ifdef sun
+#if defined(sun) || defined(__sun)

in Just for fun I reverted it back to the original, and voila, now compilation of xdu succeeds (i.e. the linker flag is not included). But installation then fails and the RUNPATH of the binary does not include the pkgsrc directories for e.g. X11 libraries.

I have been building these packages on Solaris 11.2/i86 for some time now, and last time I checked they worked fine on Solaris 10/i86 and /sparc. Any idea what's going on?


Jörn Clausen
Plattformen & Serverdienste

Universität Bielefeld
Universitätsstraße 25
33615 Bielefeld
Telefon: +49 521 106-12601

Home | Main Index | Thread Index | Old Index