mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
Added -lgcc_pic to Makefile -- Why do we need this and NetBSD don't ??
Incorporated patch by Guido (inspired by Davidg) that fixes stack problem. May not be final fix but it works more than the current method.
This commit is contained in:
parent
bfa077712f
commit
bcd9d0cf11
4 changed files with 26 additions and 36 deletions
|
|
@ -1,4 +1,4 @@
|
|||
# $Id: Makefile,v 1.3 1993/11/08 13:20:39 pk Exp $
|
||||
# $Id: Makefile,v 1.3 1993/11/09 04:19:29 paul Exp $
|
||||
|
||||
PROG= ld.so
|
||||
SRCS= mdprologue.S rtld.c shlib.c etc.c md.c
|
||||
|
|
@ -8,7 +8,7 @@ LDDIR?= $(.CURDIR)/..
|
|||
PICFLAG=-fpic
|
||||
CFLAGS += -I$(LDDIR) -I$(.CURDIR) -I$(LDDIR)/$(MACHINE) -O $(PICFLAG) -DRTLD
|
||||
LDFLAGS = -Bshareable -Bsymbolic -assert nosymbolic
|
||||
LIBS = -lc_pic
|
||||
LIBS = -lc_pic -lgcc_pic
|
||||
BINDIR= /usr/libexec
|
||||
|
||||
.PATH: $(LDDIR) $(LDDIR)/$(MACHINE)
|
||||
|
|
|
|||
|
|
@ -27,9 +27,10 @@
|
|||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* $Id: rtld.c,v 1.8 1993/11/08 13:20:40 pk Exp $
|
||||
* $Id: rtld.c,v 1.2 1993/11/09 04:19:31 paul Exp $
|
||||
*/
|
||||
|
||||
#include <machine/vmparam.h>
|
||||
#include <sys/param.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
|
@ -888,11 +889,10 @@ int *usehints;
|
|||
|
||||
if (ld_path != NULL) {
|
||||
/* Prefer paths from LD_LIBRARY_PATH */
|
||||
while ((cp = strsep(&ld_path, ":")) != NULL) {
|
||||
while ((cp = strtok(ld_path, ":")) != NULL) {
|
||||
|
||||
ld_path = NULL;
|
||||
hint = findhint(name, major, minor, cp);
|
||||
if (ld_path)
|
||||
*(ld_path-1) = ':';
|
||||
if (hint)
|
||||
return hint;
|
||||
}
|
||||
|
|
@ -951,18 +951,13 @@ init_brk()
|
|||
_exit(1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Walk to the top of stack
|
||||
*/
|
||||
if (*cpp) {
|
||||
while (*cpp) cpp++;
|
||||
cp = *--cpp;
|
||||
while (*cp) cp++;
|
||||
} else
|
||||
cp = (char *)&cp;
|
||||
|
||||
curbrk = (caddr_t)
|
||||
(((long)(cp - 1 - rlim.rlim_cur) + PAGSIZ) & ~(PAGSIZ - 1));
|
||||
if (environ < USRSTACK - MAXSSIZ) {
|
||||
curbrk = (caddr_t)
|
||||
(((long)(USRSTACK - MAXSSIZ - rlim.rlim_cur) + PAGSIZ) & ~(PAGSIZ - 1));
|
||||
} else {
|
||||
curbrk = (caddr_t)
|
||||
(((long)(USRSTACK - rlim.rlim_cur) + PAGSIZ) & ~(PAGSIZ - 1)) ;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# $Id: Makefile,v 1.3 1993/11/08 13:20:39 pk Exp $
|
||||
# $Id: Makefile,v 1.3 1993/11/09 04:19:29 paul Exp $
|
||||
|
||||
PROG= ld.so
|
||||
SRCS= mdprologue.S rtld.c shlib.c etc.c md.c
|
||||
|
|
@ -8,7 +8,7 @@ LDDIR?= $(.CURDIR)/..
|
|||
PICFLAG=-fpic
|
||||
CFLAGS += -I$(LDDIR) -I$(.CURDIR) -I$(LDDIR)/$(MACHINE) -O $(PICFLAG) -DRTLD
|
||||
LDFLAGS = -Bshareable -Bsymbolic -assert nosymbolic
|
||||
LIBS = -lc_pic
|
||||
LIBS = -lc_pic -lgcc_pic
|
||||
BINDIR= /usr/libexec
|
||||
|
||||
.PATH: $(LDDIR) $(LDDIR)/$(MACHINE)
|
||||
|
|
|
|||
|
|
@ -27,9 +27,10 @@
|
|||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* $Id: rtld.c,v 1.8 1993/11/08 13:20:40 pk Exp $
|
||||
* $Id: rtld.c,v 1.2 1993/11/09 04:19:31 paul Exp $
|
||||
*/
|
||||
|
||||
#include <machine/vmparam.h>
|
||||
#include <sys/param.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
|
@ -888,11 +889,10 @@ int *usehints;
|
|||
|
||||
if (ld_path != NULL) {
|
||||
/* Prefer paths from LD_LIBRARY_PATH */
|
||||
while ((cp = strsep(&ld_path, ":")) != NULL) {
|
||||
while ((cp = strtok(ld_path, ":")) != NULL) {
|
||||
|
||||
ld_path = NULL;
|
||||
hint = findhint(name, major, minor, cp);
|
||||
if (ld_path)
|
||||
*(ld_path-1) = ':';
|
||||
if (hint)
|
||||
return hint;
|
||||
}
|
||||
|
|
@ -951,18 +951,13 @@ init_brk()
|
|||
_exit(1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Walk to the top of stack
|
||||
*/
|
||||
if (*cpp) {
|
||||
while (*cpp) cpp++;
|
||||
cp = *--cpp;
|
||||
while (*cp) cp++;
|
||||
} else
|
||||
cp = (char *)&cp;
|
||||
|
||||
curbrk = (caddr_t)
|
||||
(((long)(cp - 1 - rlim.rlim_cur) + PAGSIZ) & ~(PAGSIZ - 1));
|
||||
if (environ < USRSTACK - MAXSSIZ) {
|
||||
curbrk = (caddr_t)
|
||||
(((long)(USRSTACK - MAXSSIZ - rlim.rlim_cur) + PAGSIZ) & ~(PAGSIZ - 1));
|
||||
} else {
|
||||
curbrk = (caddr_t)
|
||||
(((long)(USRSTACK - rlim.rlim_cur) + PAGSIZ) & ~(PAGSIZ - 1)) ;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
Loading…
Reference in a new issue