All of lore.kernel.org
 help / color / mirror / Atom feed
* Compiling libsepol with -fPIC instead of -fpic
@ 2006-11-15  6:45 Manoj Srivastava
  2006-11-20 17:05 ` Karl MacMillan
  0 siblings, 1 reply; 6+ messages in thread
From: Manoj Srivastava @ 2006-11-15  6:45 UTC (permalink / raw)
  To: selinux

[-- Attachment #1: Type: text/plain, Size: 1038 bytes --]

Hi,

        I've had reports of packages filing to compile on SPARC
 hardware when linked with  libsepol1 which was compiled with
 -fpic. We seem to be hitting the global offset table size limit;
,----[ GCC manual ]
| `-fpic'
|      Generate position-independent code (PIC) suitable for use in a
|      shared library, if supported for the target machine.  Such code
|      accesses all constant addresses through a global offset table
|      (GOT).  The dynamic loader resolves the GOT entries when the
|      program starts (the dynamic loader is not part of GCC; it is part
|      of the operating system).  If the GOT size for the linked
|      executable exceeds a machine-specific maximum size, you get an
|      error message from the linker indicating that `-fpic' does not
|      work; in that case, recompile with `-fPIC' instead.  (These
|      maximums are 8k on the SPARC and 32k on the m68k and RS/6000.  The
|      386 has no such limit.)
`----

        Simply recompiling with -fPIC corrects the problem.

        manoj


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 559 bytes --]

--- orig/src/Makefile
+++ mod/src/Makefile
@@ -24,10 +24,10 @@
 	ln -sf $@ $(TARGET) 
 
 %.o:  %.c 
-	$(CC) $(CFLAGS) -fpic -c -o $@ $<
+	$(CC) $(CFLAGS) -fPIC -c -o $@ $<
 
 %.lo:  %.c
-	$(CC) $(CFLAGS) -fpic -DSHARED -c -o $@ $<
+	$(CC) $(CFLAGS) -fPIC -DSHARED -c -o $@ $<
 
 install: all
 	test -d $(LIBDIR) || install -m 755 -d $(LIBDIR)


-- 
You can always pick up your needle and move to another groove. Tim
Leary
Manoj Srivastava <manoj.srivastava@stdc.com> <srivasta@acm.org> 
1024D/BF24424C print 4966 F272 D093 B493 410B  924B 21BA DABB BF24 424C

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Compiling libsepol with -fPIC instead of -fpic
  2006-11-15  6:45 Compiling libsepol with -fPIC instead of -fpic Manoj Srivastava
@ 2006-11-20 17:05 ` Karl MacMillan
  2006-11-21 21:05   ` Stephen Smalley
  0 siblings, 1 reply; 6+ messages in thread
From: Karl MacMillan @ 2006-11-20 17:05 UTC (permalink / raw)
  To: Manoj Srivastava; +Cc: selinux

Manoj Srivastava wrote:
> Hi,
> 
>         I've had reports of packages filing to compile on SPARC
>  hardware when linked with  libsepol1 which was compiled with
>  -fpic. We seem to be hitting the global offset table size limit;
> ,----[ GCC manual ]
> | `-fpic'
> |      Generate position-independent code (PIC) suitable for use in a
> |      shared library, if supported for the target machine.  Such code
> |      accesses all constant addresses through a global offset table
> |      (GOT).  The dynamic loader resolves the GOT entries when the
> |      program starts (the dynamic loader is not part of GCC; it is part
> |      of the operating system).  If the GOT size for the linked
> |      executable exceeds a machine-specific maximum size, you get an
> |      error message from the linker indicating that `-fpic' does not
> |      work; in that case, recompile with `-fPIC' instead.  (These
> |      maximums are 8k on the SPARC and 32k on the m68k and RS/6000.  The
> |      386 has no such limit.)
> `----
> 
>         Simply recompiling with -fPIC corrects the problem.
> 
>         manoj
> 
> 
> 
> ------------------------------------------------------------------------
> 
> --- orig/src/Makefile
> +++ mod/src/Makefile
> @@ -24,10 +24,10 @@
>  	ln -sf $@ $(TARGET) 
>  
>  %.o:  %.c 
> -	$(CC) $(CFLAGS) -fpic -c -o $@ $<
> +	$(CC) $(CFLAGS) -fPIC -c -o $@ $<
>  
>  %.lo:  %.c
> -	$(CC) $(CFLAGS) -fpic -DSHARED -c -o $@ $<
> +	$(CC) $(CFLAGS) -fPIC -DSHARED -c -o $@ $<
>  
>  install: all
>  	test -d $(LIBDIR) || install -m 755 -d $(LIBDIR)
> 
> 
Acked-by: Karl MacMillan <kmacmillan@mentalrootkit.com>

--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Compiling libsepol with -fPIC instead of -fpic
  2006-11-20 17:05 ` Karl MacMillan
@ 2006-11-21 21:05   ` Stephen Smalley
  2006-11-21 21:28     ` Karl MacMillan
  0 siblings, 1 reply; 6+ messages in thread
From: Stephen Smalley @ 2006-11-21 21:05 UTC (permalink / raw)
  To: Karl MacMillan; +Cc: Manoj Srivastava, selinux

On Mon, 2006-11-20 at 12:05 -0500, Karl MacMillan wrote:
> Manoj Srivastava wrote:
> > Hi,
> > 
> >         I've had reports of packages filing to compile on SPARC
> >  hardware when linked with  libsepol1 which was compiled with
> >  -fpic. We seem to be hitting the global offset table size limit;
> > ,----[ GCC manual ]
> > | `-fpic'
> > |      Generate position-independent code (PIC) suitable for use in a
> > |      shared library, if supported for the target machine.  Such code
> > |      accesses all constant addresses through a global offset table
> > |      (GOT).  The dynamic loader resolves the GOT entries when the
> > |      program starts (the dynamic loader is not part of GCC; it is part
> > |      of the operating system).  If the GOT size for the linked
> > |      executable exceeds a machine-specific maximum size, you get an
> > |      error message from the linker indicating that `-fpic' does not
> > |      work; in that case, recompile with `-fPIC' instead.  (These
> > |      maximums are 8k on the SPARC and 32k on the m68k and RS/6000.  The
> > |      386 has no such limit.)
> > `----
> > 
> >         Simply recompiling with -fPIC corrects the problem.
> > 
> >         manoj
> > 
> > 
> > 
> > ------------------------------------------------------------------------
> > 
> > --- orig/src/Makefile
> > +++ mod/src/Makefile
> > @@ -24,10 +24,10 @@
> >  	ln -sf $@ $(TARGET) 
> >  
> >  %.o:  %.c 
> > -	$(CC) $(CFLAGS) -fpic -c -o $@ $<
> > +	$(CC) $(CFLAGS) -fPIC -c -o $@ $<
> >  
> >  %.lo:  %.c
> > -	$(CC) $(CFLAGS) -fpic -DSHARED -c -o $@ $<
> > +	$(CC) $(CFLAGS) -fPIC -DSHARED -c -o $@ $<
> >  
> >  install: all
> >  	test -d $(LIBDIR) || install -m 755 -d $(LIBDIR)
> > 
> > 
> Acked-by: Karl MacMillan <kmacmillan@mentalrootkit.com>

Is the problem truly limited to libsepol, or is it also an issue with
libsemanage and/or libselinux?

Possibly we could define it as a variable in the Makefile (e.g. PIC ?=
-fpic) with a default of -fpic and allow you to build them with make
PIC=-fPIC on SPARC to avoid any effect on x86.

-- 
Stephen Smalley
National Security Agency


--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Compiling libsepol with -fPIC instead of -fpic
  2006-11-21 21:05   ` Stephen Smalley
@ 2006-11-21 21:28     ` Karl MacMillan
  2006-11-22 15:58       ` Stephen Smalley
  0 siblings, 1 reply; 6+ messages in thread
From: Karl MacMillan @ 2006-11-21 21:28 UTC (permalink / raw)
  To: Stephen Smalley; +Cc: Manoj Srivastava, selinux

Stephen Smalley wrote:
> On Mon, 2006-11-20 at 12:05 -0500, Karl MacMillan wrote:
>> Manoj Srivastava wrote:

>> Acked-by: Karl MacMillan <kmacmillan@mentalrootkit.com>
> 
> Is the problem truly limited to libsepol, or is it also an issue with
> libsemanage and/or libselinux?
> 
> Possibly we could define it as a variable in the Makefile (e.g. PIC ?=
> -fpic) with a default of -fpic and allow you to build them with make
> PIC=-fPIC on SPARC to avoid any effect on x86.
> 

The docs claim an effect only on m68k, PowerPC, and SPARC. So it should 
be safe to replace this globally for all of our code.

Karl

--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Compiling libsepol with -fPIC instead of -fpic
  2006-11-21 21:28     ` Karl MacMillan
@ 2006-11-22 15:58       ` Stephen Smalley
  2006-11-27 19:12         ` Karl MacMillan
  0 siblings, 1 reply; 6+ messages in thread
From: Stephen Smalley @ 2006-11-22 15:58 UTC (permalink / raw)
  To: Karl MacMillan; +Cc: Manoj Srivastava, selinux

On Tue, 2006-11-21 at 16:28 -0500, Karl MacMillan wrote:
> Stephen Smalley wrote:
> > On Mon, 2006-11-20 at 12:05 -0500, Karl MacMillan wrote:
> >> Manoj Srivastava wrote:
> 
> >> Acked-by: Karl MacMillan <kmacmillan@mentalrootkit.com>
> > 
> > Is the problem truly limited to libsepol, or is it also an issue with
> > libsemanage and/or libselinux?
> > 
> > Possibly we could define it as a variable in the Makefile (e.g. PIC ?=
> > -fpic) with a default of -fpic and allow you to build them with make
> > PIC=-fPIC on SPARC to avoid any effect on x86.
> > 
> 
> The docs claim an effect only on m68k, PowerPC, and SPARC. So it should 
> be safe to replace this globally for all of our code.

Ok.  Particularly given that both libsemanage and libselinux now depend
on libsepol.

Acked-by:  Stephen Smalley <sds@tycho.nsa.gov>

-- 
Stephen Smalley
National Security Agency


--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Compiling libsepol with -fPIC instead of -fpic
  2006-11-22 15:58       ` Stephen Smalley
@ 2006-11-27 19:12         ` Karl MacMillan
  0 siblings, 0 replies; 6+ messages in thread
From: Karl MacMillan @ 2006-11-27 19:12 UTC (permalink / raw)
  To: Stephen Smalley; +Cc: Manoj Srivastava, selinux

Stephen Smalley wrote:
> On Tue, 2006-11-21 at 16:28 -0500, Karl MacMillan wrote:
>> Stephen Smalley wrote:
>>> On Mon, 2006-11-20 at 12:05 -0500, Karl MacMillan wrote:
>>>> Manoj Srivastava wrote:
>>>> Acked-by: Karl MacMillan <kmacmillan@mentalrootkit.com>
>>> Is the problem truly limited to libsepol, or is it also an issue with
>>> libsemanage and/or libselinux?
>>>
>>> Possibly we could define it as a variable in the Makefile (e.g. PIC ?=
>>> -fpic) with a default of -fpic and allow you to build them with make
>>> PIC=-fPIC on SPARC to avoid any effect on x86.
>>>
>> The docs claim an effect only on m68k, PowerPC, and SPARC. So it should 
>> be safe to replace this globally for all of our code.
> 
> Ok.  Particularly given that both libsemanage and libselinux now depend
> on libsepol.
> 
> Acked-by:  Stephen Smalley <sds@tycho.nsa.gov>
> 
Committed the following:

Index: libsemanage/src/Makefile
===================================================================
--- libsemanage/src/Makefile	(revision 2100)
+++ libsemanage/src/Makefile	(working copy)
@@ -44,7 +44,7 @@
  pywrap: all $(SWIGLOBJ) $(SWIGSO)

  $(SWIGLOBJ): $(SWIGCOUT)
-	$(CC) $(CFLAGS) -I$(PYINC) -fpic -DSHARED -c -o $@ $<
+	$(CC) $(CFLAGS) -I$(PYINC) -fPIC -DSHARED -c -o $@ $<

  $(SWIGSO): $(SWIGLOBJ)
  	$(CC) $(LDFLAGS) -shared -o $@ $< -L. -lsemanage -l$(PYLIBVER) 
-L$(LIBDIR) -Wl,-soname,$@,-z,defs
@@ -69,7 +69,7 @@
  	$(CC) $(CFLAGS) -c -o $@ $<

  %.lo:  %.c
-	$(CC) $(CFLAGS) -fpic -DSHARED -c -o $@ $<
+	$(CC) $(CFLAGS) -fPIC -DSHARED -c -o $@ $<

  $(SWIGCOUT): $(SWIGIF)
  	$(SWIG) $^
Index: libsemanage/ChangeLog
===================================================================
--- libsemanage/ChangeLog	(revision 2100)
+++ libsemanage/ChangeLog	(working copy)
@@ -1,3 +1,8 @@
+1.8.1 2006-11-27
+	* Merged patch to compile wit -fPIC instead of -fpic from
+	  Manoj Srivastava to prevent hitting the global offest table
+	  limit. Patch changed to include libselinux and libsemanage in
+	  addition to libselinux.
  1.8 2006-10-17
  	* Updated version for release.

Index: libsemanage/VERSION
===================================================================
--- libsemanage/VERSION	(revision 2100)
+++ libsemanage/VERSION	(working copy)
@@ -1 +1 @@
-1.8
+1.8.1
Index: libsepol/src/Makefile
===================================================================
--- libsepol/src/Makefile	(revision 2100)
+++ libsepol/src/Makefile	(working copy)
@@ -24,10 +24,10 @@
  	ln -sf $@ $(TARGET)

  %.o:  %.c
-	$(CC) $(CFLAGS) -fpic -c -o $@ $<
+	$(CC) $(CFLAGS) -fPIC -c -o $@ $<

  %.lo:  %.c
-	$(CC) $(CFLAGS) -fpic -DSHARED -c -o $@ $<
+	$(CC) $(CFLAGS) -fPIC -DSHARED -c -o $@ $<

  install: all
  	test -d $(LIBDIR) || install -m 755 -d $(LIBDIR)
Index: libsepol/ChangeLog
===================================================================
--- libsepol/ChangeLog	(revision 2100)
+++ libsepol/ChangeLog	(working copy)
@@ -1,3 +1,8 @@
+1.15.3 2006-11-27
+	* Merged patch to compile wit -fPIC instead of -fpic from
+	  Manoj Srivastava to prevent hitting the global offest table
+	  limit. Patch changed to include libselinux and libsemanage in
+	  addition to libselinux.
  1.15.2 2006-10-31
  	* Merged fix from Karl MacMillan for a segfault when linking
  	  non-MLS modules with users in them.
Index: libsepol/VERSION
===================================================================
--- libsepol/VERSION	(revision 2100)
+++ libsepol/VERSION	(working copy)
@@ -1 +1 @@
-1.15.2
+1.15.3
Index: libselinux/src/Makefile
===================================================================
--- libselinux/src/Makefile	(revision 2100)
+++ libselinux/src/Makefile	(working copy)
@@ -42,7 +42,7 @@
  	$(RANLIB) $@

  $(SWIGLOBJ): $(SWIGCOUT)
-	$(CC) $(CFLAGS) -I$(PYINC) -fpic -DSHARED -c -o $@ $<
+	$(CC) $(CFLAGS) -I$(PYINC) -fPIC -DSHARED -c -o $@ $<

  $(SWIGSO): $(SWIGLOBJ)
  	$(CC) $(LDFLAGS) -shared -o $@ $< -L. -lselinux -L$(LIBDIR) 
-Wl,-soname,$@
@@ -55,7 +55,7 @@
  	$(CC) $(CFLAGS) $(TLSFLAGS) -c -o $@ $<

  %.lo:  %.c policy.h
-	$(CC) $(CFLAGS) -fpic -DSHARED -c -o $@ $<
+	$(CC) $(CFLAGS) -fPIC -DSHARED -c -o $@ $<

  $(SWIGCOUT): $(SWIGIF)
  	$(SWIG) $^
Index: libselinux/ChangeLog
===================================================================
--- libselinux/ChangeLog	(revision 2100)
+++ libselinux/ChangeLog	(working copy)
@@ -1,3 +1,8 @@
+1.33.2 2006-11-27
+	* Merged patch to compile wit -fPIC instead of -fpic from
+	  Manoj Srivastava to prevent hitting the global offest table
+	  limit. Patch changed to include libselinux and libsemanage in
+	  addition to libselinux.
  1.33.1 2006-10-19
  	* Merged updated flask definitions from Darrel Goeddel.
   	  This adds the context security class, and also adds
Index: libselinux/VERSION
===================================================================
--- libselinux/VERSION	(revision 2100)
+++ libselinux/VERSION	(working copy)
@@ -1 +1 @@
-1.33.1
+1.33.2


--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2006-11-27 19:12 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-11-15  6:45 Compiling libsepol with -fPIC instead of -fpic Manoj Srivastava
2006-11-20 17:05 ` Karl MacMillan
2006-11-21 21:05   ` Stephen Smalley
2006-11-21 21:28     ` Karl MacMillan
2006-11-22 15:58       ` Stephen Smalley
2006-11-27 19:12         ` Karl MacMillan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.