New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for Atari FreeMiNT platform #11284
Comments
From alanh@fairlite.co.ukCreated by alanh@fairlite.co.ukThis patch adds support for the Atari FreeMiNT platform. This is directly related to ticket 73786. Perl Info
|
From alanh@fairlite.co.ukHere's the patch. Thanks, Alan. |
From alanh@fairlite.co.ukperl-5.12.3-mint.patchdiff -ur perl-5.12.3/Configure perl-5.12.3-mint/Configure
--- perl-5.12.3/Configure 2011-02-21 09:18:09.000000000 +0000
+++ perl-5.12.3-mint/Configure 2011-02-21 09:38:49.000000000 +0000
@@ -1275,6 +1275,9 @@
elif test -n "$DJGPP"; then
: DOS DJGPP
_exe=".exe"
+elif test -f "/kern/cookiejar"; then
+: MiNT
+ _exe=""
elif test -d c:/. -o -n "$is_os2" ; then
: OS/2 or cygwin
_exe=".exe"
@@ -1402,7 +1405,7 @@
xcat=/bin/cat
test -f $xcat$_exe || xcat=/usr/bin/cat
if test ! -f $xcat$_exe; then
- for p in `echo $PATH | sed -e "s/$p_/ /g"` $paths; do
+ for p in `echo $PATH | sed -e 's/$p_/ /g'` $paths; do
if test -f $p/cat$_exe; then
xcat=$p/cat
break
diff -ur perl-5.12.3/ext/DynaLoader/dl_dld.xs perl-5.12.3-mint/ext/DynaLoader/dl_dld.xs
--- perl-5.12.3/ext/DynaLoader/dl_dld.xs 2010-11-21 21:40:55.000000000 +0000
+++ perl-5.12.3-mint/ext/DynaLoader/dl_dld.xs 2011-02-21 09:38:51.000000000 +0000
@@ -116,6 +116,18 @@
goto haverror;
}
+ DLDEBUG(1,PerlIO_printf(Perl_debug_log, "dld_link(libm.a)\n"));
+ if (dlderr = dld_link("/usr/lib/libm.a")) {
+ SaveError(aTHX_ "dld_link(libm.a): %s", dld_strerror(dlderr));
+ goto haverror;
+ }
+
+ DLDEBUG(1,PerlIO_printf(Perl_debug_log, "dld_link(libc.a)\n"));
+ if (dlderr = dld_link("/usr/lib/libc.a")) {
+ SaveError(aTHX_ "dld_link(libc.a): %s", dld_strerror(dlderr));
+ goto haverror;
+ }
+
max = AvFILL(dl_resolve_using);
for (x = 0; x <= max; x++) {
char *sym = SvPVX(*av_fetch(dl_resolve_using, x, 0));
diff -ur perl-5.12.3/malloc.c perl-5.12.3-mint/malloc.c
--- perl-5.12.3/malloc.c 2011-01-09 20:20:57.000000000 +0000
+++ perl-5.12.3-mint/malloc.c 2011-02-21 09:38:51.000000000 +0000
@@ -264,7 +264,7 @@
#define MIN_BUC_POW2 (sizeof(void*) > 4 ? 3 : 2) /* Allow for 4-byte arena. */
#define MIN_BUCKET (MIN_BUC_POW2 * BUCKETS_PER_POW2)
-#if !(defined(I286) || defined(atarist))
+#if !defined(I286)
/* take 2k unless the block is bigger than that */
# define LOG_OF_MIN_ARENA 11
#else
@@ -551,8 +551,8 @@
*/
#define u_short unsigned short
-/* 286 and atarist like big chunks, which gives too much overhead. */
-#if (defined(RCHECK) || defined(I286) || defined(atarist)) && defined(PACK_MALLOC)
+/* 286 like big chunks, which gives too much overhead. */
+#if (defined(RCHECK) || defined(I286)) && defined(PACK_MALLOC)
# undef PACK_MALLOC
#endif
@@ -1734,16 +1734,14 @@
/* Second, check alignment. */
slack = 0;
-#if !defined(atarist) /* on the atari we dont have to worry about this */
-# ifndef I286 /* The sbrk(0) call on the I286 always returns the next segment */
+#ifndef I286 /* The sbrk(0) call on the I286 always returns the next segment */
/* WANTED_ALIGNMENT may be more than NEEDED_ALIGNMENT, but this may
improve performance of memory access. */
if (PTR2UV(cp) & (WANTED_ALIGNMENT - 1)) { /* Not aligned. */
slack = WANTED_ALIGNMENT - (PTR2UV(cp) & (WANTED_ALIGNMENT - 1));
add += slack;
}
-# endif
-#endif /* !atarist */
+#endif
if (add) {
DEBUG_m(PerlIO_printf(Perl_debug_log,
diff -ur perl-5.12.3/miniperlmain.c perl-5.12.3-mint/miniperlmain.c
--- perl-5.12.3/miniperlmain.c 2011-01-09 20:20:57.000000000 +0000
+++ perl-5.12.3-mint/miniperlmain.c 2011-02-21 09:38:49.000000000 +0000
@@ -45,7 +45,7 @@
#if defined (atarist)
/* The Atari operating system doesn't have a dynamic stack. The
stack size is determined from this value. */
-long _stksize = 64 * 1024;
+long _stksize = 256 * 1024;
#endif
#if defined(PERL_GLOBAL_STRUCT_PRIVATE)
diff -ur perl-5.12.3/os2/perlrexx.c perl-5.12.3-mint/os2/perlrexx.c
--- perl-5.12.3/os2/perlrexx.c 2010-11-21 21:40:56.000000000 +0000
+++ perl-5.12.3-mint/os2/perlrexx.c 2011-02-21 09:42:49.000000000 +0000
@@ -38,7 +38,7 @@
#if defined (atarist)
/* The Atari operating system doesn't have a dynamic stack. The
stack size is determined from this value. */
-long _stksize = 64 * 1024;
+long _stksize = 256 * 1024;
#endif
/* Register any extra external extensions */
diff -ur perl-5.12.3/perl.c perl-5.12.3-mint/perl.c
--- perl-5.12.3/perl.c 2011-02-21 09:17:19.000000000 +0000
+++ perl-5.12.3-mint/perl.c 2011-02-21 09:38:50.000000000 +0000
@@ -3272,10 +3272,6 @@
"\n\nOS/2 port Copyright (c) 1990, 1991, Raymond Chen, Kai Uwe Rommel\n"
"Version 5 port Copyright (c) 1994-2002, Andreas Kaiser, Ilya Zakharevich\n");
#endif
-#ifdef atarist
- PerlIO_printf(PerlIO_stdout(),
- "atariST series port, ++jrb bammi@cadence.com\n");
-#endif
#ifdef __BEOS__
PerlIO_printf(PerlIO_stdout(),
"BeOS port Copyright Tom Spindler, 1997-1999\n");
diff -ur perl-5.12.3/perl.h perl-5.12.3-mint/perl.h
--- perl-5.12.3/perl.h 2011-01-09 20:20:57.000000000 +0000
+++ perl-5.12.3-mint/perl.h 2011-02-21 09:38:50.000000000 +0000
@@ -497,7 +497,7 @@
*/
/* define this once if either system, instead of cluttering up the src */
-#if defined(MSDOS) || defined(atarist) || defined(WIN32) || defined(NETWARE)
+#if defined(MSDOS) || defined(WIN32) || defined(NETWARE)
#define DOSISH 1
#endif
diff -ur --new-file perl-5.12.3/perlio.c perl-5.12.3-mint/perlio.c
--- perl-5.12.3/perlio.c 2009-04-14 23:47:25.000000000 +0000
+++ perl-5.12.3-mint/perlio.c 2010-03-23 18:36:15.000000000 +0000
@@ -135,17 +135,6 @@
* This used to be contents of do_binmode in doio.c
*/
#ifdef DOSISH
-# if defined(atarist)
- PERL_UNUSED_ARG(iotype);
- if (!fflush(fp)) {
- if (mode & O_BINARY)
- ((FILE *) fp)->_flag |= _IOBIN;
- else
- ((FILE *) fp)->_flag &= ~_IOBIN;
- return 1;
- }
- return 0;
-# else
dTHX;
PERL_UNUSED_ARG(iotype);
#ifdef NETWARE
@@ -153,7 +142,7 @@
#else
if (PerlLIO_setmode(fileno(fp), mode) != -1) {
#endif
-# if defined(WIN32) && defined(__BORLANDC__)
+# if defined(WIN32) && defined(__BORLANDC__)
/*
* The translation mode of the stream is maintained independent
of
@@ -169,12 +158,11 @@
fp->flags |= _F_BIN;
else
fp->flags &= ~_F_BIN;
-# endif
+# endif
return 1;
}
else
return 0;
-# endif
#else
# if defined(USEMYBINMODE)
dTHX;
diff -ur perl-5.12.3/pp_sys.c perl-5.12.3-mint/pp_sys.c
--- perl-5.12.3/pp_sys.c 2011-01-09 20:20:58.000000000 +0000
+++ perl-5.12.3-mint/pp_sys.c 2011-02-21 09:38:50.000000000 +0000
@@ -3308,14 +3308,6 @@
RETPUSHNO;
}
-#if defined(atarist) /* this will work with atariST. Configure will
- make guesses for other systems. */
-# define FILE_base(f) ((f)->_base)
-# define FILE_ptr(f) ((f)->_ptr)
-# define FILE_cnt(f) ((f)->_cnt)
-# define FILE_bufsiz(f) ((f)->_cnt + ((f)->_ptr - (f)->_base))
-#endif
-
PP(pp_fttext)
{
dVAR;
@@ -5567,30 +5559,6 @@
case 8:
retval = syscall(a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7]);
break;
-#ifdef atarist
- case 9:
- retval = syscall(a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8]);
- break;
- case 10:
- retval = syscall(a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9]);
- break;
- case 11:
- retval = syscall(a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],
- a[10]);
- break;
- case 12:
- retval = syscall(a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],
- a[10],a[11]);
- break;
- case 13:
- retval = syscall(a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],
- a[10],a[11],a[12]);
- break;
- case 14:
- retval = syscall(a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],
- a[10],a[11],a[12],a[13]);
- break;
-#endif /* atarist */
}
SP = ORIGMARK;
PUSHi(retval);
diff -ur perl-5.12.3/util.c perl-5.12.3-mint/util.c
--- perl-5.12.3/util.c 2011-01-09 20:20:58.000000000 +0000
+++ perl-5.12.3-mint/util.c 2011-02-21 09:38:51.000000000 +0000
@@ -2545,7 +2545,7 @@
return PerlIO_fdopen(p[This], mode);
}
#else
-#if defined(atarist) || defined(EPOC)
+#if defined(EPOC)
FILE *popen();
PerlIO *
Perl_my_popen(pTHX_ const char *cmd, const char *mode)
@@ -2994,7 +2994,7 @@
}
#endif
-#if defined(atarist) || defined(OS2) || defined(EPOC)
+#if defined(OS2) || defined(EPOC)
int pclose();
#ifdef HAS_FORK
int /* Cannot prototype with I32
@@ -3111,7 +3111,7 @@
I32 len = 0;
int retval;
char *bufend;
-#if defined(DOSISH) && !defined(OS2) && !defined(atarist)
+#if defined(DOSISH) && !defined(OS2)
# define SEARCH_EXTS ".bat", ".cmd", NULL
# define MAX_EXT_LEN 4
#endif
@@ -3234,28 +3234,25 @@
bufend = s + strlen(s);
while (s < bufend) {
-#if defined(atarist) || defined(DOSISH)
+#if defined(DOSISH)
for (len = 0; *s
-# ifdef atarist
- && *s != ','
-# endif
&& *s != ';'; len++, s++) {
if (len < sizeof tmpbuf)
tmpbuf[len] = *s;
}
if (len < sizeof tmpbuf)
tmpbuf[len] = '\0';
-#else /* ! (atarist || DOSISH) */
+#else /* ! (DOSISH) */
s = delimcpy(tmpbuf, tmpbuf + sizeof tmpbuf, s, bufend,
':',
&len);
-#endif /* ! (atarist || DOSISH) */
+#endif /* ! (DOSISH) */
if (s < bufend)
s++;
if (len + 1 + strlen(scriptname) + MAX_EXT_LEN >= sizeof tmpbuf)
continue; /* don't search dir with too-long name */
if (len
-# if defined(atarist) || defined(DOSISH)
+# if defined(DOSISH)
&& tmpbuf[len - 1] != '/'
&& tmpbuf[len - 1] != '\\'
# endif
--- /dev/null 2011-02-19 16:37:30.000000000 +0000
+++ perl-5.12.3-mint/hints/freemint.sh 2011-02-21 09:43:21.000000000 +0000
@@ -0,0 +1,34 @@
+# hints/freemint.sh
+#
+# talk to guido@freemint.de if you want to change this file.
+# Please read the README.mint file.
+#
+# misc stuff
+
+archname="m68k-freemint"
+
+cccdlflags=' '; # avoid -fPIC
+ccdlflags="-Wl,-whole-archive -lgcc -lpthread -Wl,-no-whole-archive"
+
+# libs
+libpth="$prefix/lib /usr/local/lib /usr/lib"
+glibpth="$libpth"
+xlibpth="$libpth"
+
+ccflags="$ccflags -D_GNU_SOURCE"
+libswanted='m dld'
+dl_src='dl_dld.xs'
+dlext='o'
+lddlflags='-r'
+ldflags='-static'
+so='none'
+useshrplib='false'
+
+#sbrk() returns -1 (failure) somewhere in lib/unicore/mktables at
+#around 14M, so we need to use system malloc() as our sbrk()
+malloc_cflags='ccflags="-DUSE_PERL_SBRK -DPERL_SBRK_VIA_MALLOC $ccflags"'
+
+# Locales aren't feeling well. We crash if -Ox used.
+locale_cflags='optimize="-O0"'
+LC_ALL=C; export LC_ALL;
+LANG=C; export LANG;
|
From @TuxOn Thu, 28 Apr 2011 20:37:05 +0100, Alan Hourihane
Sorry to say it is just too late for 5.14.0 Inline Patch--- perl-5.12.3/Configure 2011-02-21 09:18:09.000000000 +0000
+++ perl-5.12.3-mint/Configure 2011-02-21 09:38:49.000000000 +0000
@@ -1275,6 +1275,9 @@
elif test -n "$DJGPP"; then
: DOS DJGPP
_exe=".exe"
+elif test -f "/kern/cookiejar"; then
+: MiNT
+ _exe=""
elif test -d c:/. -o -n "$is_os2" ; then
: OS/2 or cygwin
_exe=".exe"
@@ -1402,7 +1405,7 @@ Looks sane, but again not in time for 5.14.0. This is btw an unchanged
-- |
The RT System itself - Status changed from 'new' to 'open' |
From @cpansproutGrrr! RT’s pop-up menus made me delete the freemint and 5.12.3 values. |
From @cpansproutIs there any chance this could be integrated before 5.16? On Fri Apr 29 03:19:00 2011, hmbrand wrote:
|
From [Unknown Contact. See original ticket]Is there any chance this could be integrated before 5.16? On Fri Apr 29 03:19:00 2011, hmbrand wrote:
|
From @TuxOn Sun, 16 Oct 2011 17:41:18 -0700, "Father Chrysostomos via RT"
I don't think so, as there was no reply at all on the first part, and
-- |
From @tonycozOn Sun Oct 16 22:56:47 2011, hmbrand wrote:
There's a followup for the first part at: http://www.nntp.perl.org/group/perl.perl5.porters/2012/08/msg191018.html which doesn't seem to have been picked up by RT. Presumably the cygwin test for -d c:/. is matching. Tony |
From @devenWhat is the logic behind the second part of the patch? It only appears to Deven On Mon, Jun 24, 2013 at 1:35 AM, Tony Cook via RT <perlbug-followup@perl.org
|
From @devenOn Thu, Jul 4, 2013 at 6:36 AM, Alan Hourihane <alanh@fairlite.co.uk> wrote:
The distinction between single and double quotes goes back decades to the What was broken about the Configure script that the patch was attempting to Deven |
From @nwc10On Thu Apr 28 12:32:18 2011, alanh wrote:
See Nicholas Clark |
From alanh@fairlite.co.ukOn Fri Apr 29 03:19:00 2011, hmbrand wrote:
Just to go over the Configure patch again. The first hunk is required because otherwise the OS2/Cygwin test The second hunk isn't required. I've just retested without it. Can this be committed without that hunk ? Also, we need the above comment rectifying so we don't lose dld support. Thanks. |
From @TuxOn Mon, 16 Sep 2013 14:16:02 -0700, "Alan Hourihane via RT"
As part of the original patch is about quotes, I might add that those
Then do not change it. This is most likely what was holding the patch for p in `echo $PATH | sed -e "s/$p_/ /g"` $paths; do but this patch seems to prefer the one where the substitution pattern In the SVN repository, the line present in spitshell.U is the correct one.
I think so
-- |
From @nwc10On Mon, Sep 16, 2013 at 02:16:02PM -0700, Alan Hourihane via RT wrote:
The dl_dld.xs file makes no use of any of the probing done by Configure - Also, no other platform is using dld, so if we put the file back as That keeps Configure simpler, without stopping MiNT working. Nicholas Clark |
From alanh@fairlite.co.ukOn 09/17/13 08:12, Nicholas Clark via RT wrote:
Great. Thanks. Let me know when to grab something to test. Alan. |
From @bulk88On Tue Sep 17 01:24:49 2013, alanh wrote:
To move this ticket along. As a 3rd party who understands very little of this ticket, I think you need to remove the double to single quotes change in Configure. Also your patch is a diff patch, not a git patch. Here at p5p, we prefer, but don't require, git patches with commit messages. Mention this ticket number in the commit message body. Also since dld was removed per http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2013-09/msg00174.html , this patch seems uncommitable now. Note the OP diff patch is from 5.12, not 5.19. Also, some [of my] questions to answer either here in this ticket or in commit message. Why did the fixed stack size change in the OS? ____________________________________________________ Inline Patchdiff -ur perl-5.12.3/ext/DynaLoader/dl_dld.xs perl-5.12.3-mint/ext/DynaLoader/dl_dld.xs
--- perl-5.12.3/ext/DynaLoader/dl_dld.xs 2010-11-21 21:40:55.000000000 +0000
+++ perl-5.12.3-mint/ext/DynaLoader/dl_dld.xs 2011-02-21 09:38:51.000000000 +0000
@@ -116,6 +116,18 @@
goto haverror;
}
+ DLDEBUG(1,PerlIO_printf(Perl_debug_log, "dld_link(libm.a)\n"));
+ if (dlderr = dld_link("/usr/lib/libm.a")) {
+ SaveError(aTHX_ "dld_link(libm.a): %s", dld_strerror(dlderr));
+ goto haverror;
+ }
+
+ DLDEBUG(1,PerlIO_printf(Perl_debug_log, "dld_link(libc.a)\n"));
+ if (dlderr = dld_link("/usr/lib/libc.a")) {
+ SaveError(aTHX_ "dld_link(libc.a): %s", dld_strerror(dlderr));
+ goto haverror;
+ }
+
max = AvFILL(dl_resolve_using);
for (x = 0; x <= max; x++) {
char *sym = SvPVX(*av_fetch(dl_resolve_using, x, 0));
-- |
From alanh@fairlite.co.ukOn 10/30/13 03:16, bulk88 via RT wrote:
As previous tickets have mentioned that dld will be added back with a
Because the app needs more stack.
Because dld needs to link with system libraries. Alan. |
From @tonycozOn Tue Sep 17 01:24:49 2013, alanh wrote:
I've pushed an update to tonyc/freemint reinstating dld renamed as dld_freemint, You can download a snapshot to test from: http://perl5.git.perl.org/perl.git/snapshot/refs/heads/tonyc/freemint.tar.gz Tony |
From alanh@fairlite.co.ukOn 11/11/13 00:40, Tony Cook via RT wrote:
Thanks Tony, I'll grab it and report back. Alan. |
From alanh@fairlite.co.ukHi Tony, So I'm building a copy now and get these warnings when building ../../miniperl "-I../../lib" "-I../../lib" ../../lib/ExtUtils/xsubpp We're just missing "const" on line 74, but I'm not sure how line 146 & Also, we can remove the __linux__ references in this file too. I need to send a new files for FreeMiNT hints and another minor patch Alan. |
From alanh@fairlite.co.ukAttached is a patch against the renamed dl_freemint.xs file. |
From alanh@fairlite.co.ukdl_freemint.xs.patch--- /tmp/dl_freemint.xs 2013-11-13 14:26:51.000000000 +0000
+++ ext/DynaLoader/dl_freemint.xs 2013-11-14 16:39:07.000000000 +0000
@@ -65,19 +65,15 @@
dl_resolve_using = get_av("DynaLoader::dl_resolve_using", GV_ADDMULTI);
dl_require_symbols = get_av("DynaLoader::dl_require_symbols", GV_ADDMULTI);
-#ifdef __linux__
- dlderr = dld_init("/proc/self/exe");
+ dlderr = dld_init("/kern/self/exe");
if (dlderr) {
-#endif
dlderr = dld_init(dld_find_executable(PL_origargv[0]));
if (dlderr) {
char *msg = dld_strerror(dlderr);
- SaveError(aTHX_ "dld_init(%s) failed: %s", PL_origargv[0], msg);
+ SaveError(aTHX_ "dld_init(%s) failed: %s", dld_find_executable(PL_origargv[0]), msg);
DLDEBUG(1,PerlIO_printf(Perl_debug_log, "%s", dl_last_error));
}
-#ifdef __linux__
}
-#endif
}
}
@@ -97,7 +93,6 @@
GV *gv;
dMY_CXT;
CODE:
- RETVAL = filename;
DLDEBUG(1,PerlIO_printf(Perl_debug_log, "dl_load_file(%s,%x):\n", filename,flags));
if (flags & 0x01)
Perl_croak(aTHX_ "Can't make loaded symbols global on this platform while loading %s",filename);
@@ -139,28 +127,31 @@
goto haverror;
}
}
- DLDEBUG(2,PerlIO_printf(Perl_debug_log, "libref=%s\n", RETVAL));
+ DLDEBUG(2,PerlIO_printf(Perl_debug_log, "libref=%s\n", filename));
haverror:
ST(0) = sv_newmortal() ;
if (dlderr == 0)
- sv_setiv(ST(0), PTR2IV(RETVAL));
+ sv_setiv(ST(0), PTR2IV(filename));
+ XSRETURN(1);
void *
dl_find_symbol(libhandle, symbolname)
void * libhandle
char * symbolname
+ PREINIT:
+ void *retv;
CODE:
DLDEBUG(2,PerlIO_printf(Perl_debug_log, "dl_find_symbol(handle=%x, symbol=%s)\n",
libhandle, symbolname));
- RETVAL = (void *)dld_get_func(symbolname);
- /* if RETVAL==NULL we should try looking for a non-function symbol */
- DLDEBUG(2,PerlIO_printf(Perl_debug_log, " symbolref = %x\n", RETVAL));
+ retv = (void *)dld_get_func(symbolname);
+ DLDEBUG(2,PerlIO_printf(Perl_debug_log, " symbolref = %x\n", (unsigned int)retv));
ST(0) = sv_newmortal() ;
- if (RETVAL == NULL)
+ if (retv == NULL)
SaveError(aTHX_ "dl_find_symbol: Unable to find '%s' symbol", symbolname) ;
else
- sv_setiv(ST(0), PTR2IV(RETVAL));
+ sv_setiv(ST(0), PTR2IV(retv));
+ XSRETURN(1);
void
@@ -191,6 +182,7 @@
(void(*)(pTHX_ CV *))symref,
filename, NULL,
XS_DYNAMIC_FILENAME)));
+ XSRETURN(1);
char *
dl_error()
|
From alanh@fairlite.co.ukAttached is a patch to ext/POSIX/Makefile.PL to stop including libm for freemint as well. |
From alanh@fairlite.co.ukFinally a hints file for FreeMiNT. |
From alanh@fairlite.co.ukActually, scrap that last freemint.sh hints file and use this as I've updated the comments. |
From @tonycozOn Thu Nov 14 08:51:52 2013, alanh wrote:
I'm confused by this. Your hints file enabled shared libraries through dl_freeminit.xs, but sets "so" to 'none' - does that mean non-XS shared libraries are not supported? Other comments: 1) Instead of setting malloc_cflags, you might want to set usemymalloc=n, so perl uses the system malloc instead of its own, though possibly you could use both so someone could enable usemymalloc with -Dusemymalloc=y at Configure time: case "$usemymalloc" in 2) are you writing a README.mint file? The hints file refers to one, but blead doesn't include it. Tony |
From @tonycozOn Thu Nov 14 08:51:52 2013, alanh wrote:
I've pushed an updated branch with your changes. The same link: http://perl5.git.perl.org/perl.git/snapshot/refs/heads/tonyc/freemint.tar.gz should download the new changes. Tony |
From alanh@fairlite.co.ukOn 11/15/13 00:47, Tony Cook via RT wrote:
That's correct. The system doesn't have generalized shared libraries.
Gotcha. I see darwin does this too, so I'll add the case/esac clause.
No, that reference can be dropped. Alan. |
From alanh@fairlite.co.ukOn 11/15/13 01:01, Tony Cook via RT wrote:
Thanks, I'm compiling now. Alan. |
From alanh@fairlite.co.ukHi Tony, Final freemint.sh hints patch attached. There's a few test failures, but they're nothing to do with the build Thanks, Alan. |
From alanh@fairlite.co.ukfreemint.sh.patch--- hints/freemint.sh.old 2013-11-15 00:56:46.000000000 +0000
+++ hints/freemint.sh 2013-11-15 13:11:01.987496982 +0000
@@ -1,9 +1,6 @@
# hints/freemint.sh
#
-# talk to alanh@freemint.org if you want to change this file.
-# Please read the README.mint file.
-#
-# misc stuff
+# Contact alanh@freemint.org if you want to change this file.
archname="m68k-freemint"
@@ -24,6 +21,16 @@
so='none'
useshrplib='false'
+case "$usemymalloc" in
+'') usemymalloc='n' ;;
+esac
#sbrk() returns -1 (failure) somewhere in lib/unicore/mktables at
#around 14M, so we need to use system malloc() as our sbrk()
malloc_cflags='ccflags="-DUSE_PERL_SBRK -DPERL_SBRK_VIA_MALLOC $ccflags"'
+
+# Locales aren't feeling well.
+LC_ALL=C; export LC_ALL;
+LANG=C; export LANG;
+
+# We crash if -Ox used.
+locale_cflags='optimize="-O0"'
|
From @tonycozOn Fri Nov 15 05:52:47 2013, alanh wrote:
I've applied that change, squashing it into the original hints change, and pushed http://perl5.git.perl.org/perl.git/snapshot/refs/heads/tonyc/freemint.tar.gz again. Thanks, |
From alanh@fairlite.co.ukOn 11/17/13 23:04, Tony Cook via RT wrote:
All good Tony. Thanks ! |
From @tonycozOn Mon Nov 18 01:54:45 2013, alanh wrote:
Can you summarize how well FreeMINT support works for use in perldelta? eg. Perl now builds on FreeMINT but fails (many|a few|specific) tests. Tony |
From @HugmeirOn Mon, Nov 18, 2013 at 8:38 PM, Tony Cook via RT <perlbug-followup@perl.org
I went through those steps for Android a while back; if I recall correctly, |
From @LeontOn Tue, Sep 17, 2013 at 9:11 AM, Nicholas Clark <nick@ccl4.org> wrote:
ExtUtils::Mkbootstrap contains some specific code for «$Config{'dlsrc'} =~ Leon |
From @tonycozOn Mon Nov 18 15:38:39 2013, tonyc wrote:
Hi Alan, Any chance of getting this summary? Tony |
From alanh@fairlite.co.ukOn 01/15/14 03:54, Tony Cook via RT wrote:
Yes, sorry Tony. "Perl now builds with FreeMiNT/Atari. It fails a few tests, that needs That's all really. Nothing more needed. Alan. |
From @tonycozOn Wed Jan 15 04:11:29 2014, alanh wrote:
All the various patches applied as: 817bb57 dld support for FreeMINT Tony |
From alanh@fairlite.co.ukOn 01/16/14 04:41, Tony Cook via RT wrote:
Thanks Tony ! Alan. |
@tonycoz - Status changed from 'open' to 'resolved' |
Migrated from rt.perl.org#89502 (status was 'resolved')
Searchable as RT89502$
The text was updated successfully, but these errors were encountered: